From a1a7f10c94cbbf879f757fefe3dd5120c0ffb1ff Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Thu, 24 Mar 2022 17:30:41 -0400 Subject: [PATCH] Explicitly cast fuchsia.io constants to uint32_t These constants are changing from uint32 to a bits type. Remove duplicate definitions while I'm here. --- .../flutter/file_in_namespace_buffer.cc | 19 ++++----------- .../runtime/dart/utils/mapped_resource.cc | 12 ++++++---- .../fuchsia/runtime/dart/utils/vmo.cc | 23 +++++++++++-------- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/shell/platform/fuchsia/flutter/file_in_namespace_buffer.cc b/shell/platform/fuchsia/flutter/file_in_namespace_buffer.cc index 972b303c450e6..e4d0ebe5307ba 100644 --- a/shell/platform/fuchsia/flutter/file_in_namespace_buffer.cc +++ b/shell/platform/fuchsia/flutter/file_in_namespace_buffer.cc @@ -4,6 +4,7 @@ #include "file_in_namespace_buffer.h" +#include #include #include @@ -16,17 +17,6 @@ namespace flutter_runner { -namespace { - -// TODO(kaushikiska): Use these constants from ::llcpp::fuchsia::io -// Can read from target object. -constexpr uint32_t OPEN_RIGHT_READABLE = 1u; - -// Connection can map target object executable. -constexpr uint32_t OPEN_RIGHT_EXECUTABLE = 8u; - -} // namespace - FileInNamespaceBuffer::FileInNamespaceBuffer(int namespace_fd, const char* path, bool executable) @@ -84,15 +74,16 @@ std::unique_ptr LoadFile(int namespace_fd, std::unique_ptr MakeFileMapping(const char* path, bool executable) { - uint32_t flags = OPEN_RIGHT_READABLE; + auto flags = fuchsia::io::OPEN_RIGHT_READABLE; if (executable) { - flags |= OPEN_RIGHT_EXECUTABLE; + flags |= fuchsia::io::OPEN_RIGHT_EXECUTABLE; } // The returned file descriptor is compatible with standard posix operations // such as close, mmap, etc. We only need to treat open/open_at specially. int fd; - const zx_status_t status = fdio_open_fd(path, flags, &fd); + const zx_status_t status = + fdio_open_fd(path, static_cast(flags), &fd); if (status != ZX_OK) { return nullptr; } diff --git a/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.cc b/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.cc index 9adba9308c545..510fa7dbd1dfc 100644 --- a/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.cc +++ b/shell/platform/fuchsia/runtime/dart/utils/mapped_resource.cc @@ -109,15 +109,17 @@ static int OpenFdExec(const std::string& path, int dirfd) { // fdio_open_fd_at does not support AT_FDCWD, by design. Use fdio_open_fd // and expect an absolute path for that usage pattern. dart_utils::Check(path[0] == '/', LOG_TAG); - result = fdio_open_fd( - path.c_str(), - fuchsia::io::OPEN_RIGHT_READABLE | fuchsia::io::OPEN_RIGHT_EXECUTABLE, - &fd); + result = + fdio_open_fd(path.c_str(), + static_cast(fuchsia::io::OPEN_RIGHT_READABLE | + fuchsia::io::OPEN_RIGHT_EXECUTABLE), + &fd); } else { dart_utils::Check(path[0] != '/', LOG_TAG); result = fdio_open_fd_at( dirfd, path.c_str(), - fuchsia::io::OPEN_RIGHT_READABLE | fuchsia::io::OPEN_RIGHT_EXECUTABLE, + static_cast(fuchsia::io::OPEN_RIGHT_READABLE | + fuchsia::io::OPEN_RIGHT_EXECUTABLE), &fd); } if (result != ZX_OK) { diff --git a/shell/platform/fuchsia/runtime/dart/utils/vmo.cc b/shell/platform/fuchsia/runtime/dart/utils/vmo.cc index b0e4f93008484..4aa06f75664af 100644 --- a/shell/platform/fuchsia/runtime/dart/utils/vmo.cc +++ b/shell/platform/fuchsia/runtime/dart/utils/vmo.cc @@ -59,12 +59,14 @@ bool VmoFromFilename(const std::string& filename, // Note: the implementation here cannot be shared with VmoFromFilenameAt // because fdio_open_fd_at does not aim to provide POSIX compatibility, and // thus does not handle AT_FDCWD as dirfd. - uint32_t flags = fuchsia::io::OPEN_RIGHT_READABLE | - (executable ? fuchsia::io::OPEN_RIGHT_EXECUTABLE : 0); - zx_status_t status; - int fd; + auto flags = fuchsia::io::OPEN_RIGHT_READABLE; + if (executable) { + flags |= fuchsia::io::OPEN_RIGHT_EXECUTABLE; + } - status = fdio_open_fd(filename.c_str(), flags, &fd); + int fd; + const zx_status_t status = + fdio_open_fd(filename.c_str(), static_cast(flags), &fd); if (status != ZX_OK) { FX_LOGF(ERROR, LOG_TAG, "fdio_open_fd(\"%s\", %08x) failed: %s", filename.c_str(), flags, zx_status_get_string(status)); @@ -79,11 +81,14 @@ bool VmoFromFilenameAt(int dirfd, const std::string& filename, bool executable, fuchsia::mem::Buffer* buffer) { - uint32_t flags = fuchsia::io::OPEN_RIGHT_READABLE | - (executable ? fuchsia::io::OPEN_RIGHT_EXECUTABLE : 0); - zx_status_t status; + auto flags = fuchsia::io::OPEN_RIGHT_READABLE; + if (executable) { + flags |= fuchsia::io::OPEN_RIGHT_EXECUTABLE; + } + int fd; - status = fdio_open_fd_at(dirfd, filename.c_str(), flags, &fd); + const zx_status_t status = fdio_open_fd_at(dirfd, filename.c_str(), + static_cast(flags), &fd); if (status != ZX_OK) { FX_LOGF(ERROR, LOG_TAG, "fdio_open_fd_at(%d, \"%s\", %08x) failed: %s", dirfd, filename.c_str(), flags, zx_status_get_string(status));