diff --git a/runtime/bin/console_win.cc b/runtime/bin/console_win.cc index d714aa541d3..03d8fb9f9fb 100644 --- a/runtime/bin/console_win.cc +++ b/runtime/bin/console_win.cc @@ -23,7 +23,7 @@ namespace bin { class ConsoleWin { public: - static const int kInvalidFlag = -1; + static constexpr int kInvalidFlag = -1; static void Initialize() { saved_output_cp_ = kInvalidFlag; diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc index d1aee6c6945..093e5bb4974 100644 --- a/runtime/bin/dartutils.cc +++ b/runtime/bin/dartutils.cc @@ -32,20 +32,6 @@ namespace dart { namespace bin { const char* DartUtils::original_working_directory = nullptr; -const char* const DartUtils::kDartScheme = "dart:"; -const char* const DartUtils::kAsyncLibURL = "dart:async"; -const char* const DartUtils::kBuiltinLibURL = "dart:_builtin"; -const char* const DartUtils::kCoreLibURL = "dart:core"; -const char* const DartUtils::kInternalLibURL = "dart:_internal"; -const char* const DartUtils::kIsolateLibURL = "dart:isolate"; -const char* const DartUtils::kHttpLibURL = "dart:_http"; -const char* const DartUtils::kIOLibURL = "dart:io"; -const char* const DartUtils::kIOLibPatchURL = "dart:io-patch"; -const char* const DartUtils::kCLILibURL = "dart:cli"; -const char* const DartUtils::kCLILibPatchURL = "dart:cli-patch"; -const char* const DartUtils::kUriLibURL = "dart:uri"; -const char* const DartUtils::kHttpScheme = "http:"; -const char* const DartUtils::kVMServiceLibURL = "dart:vmservice"; dart::SimpleHashMap* DartUtils::environment_ = nullptr; diff --git a/runtime/bin/dartutils.h b/runtime/bin/dartutils.h index 4341a2ace95..32e13028490 100644 --- a/runtime/bin/dartutils.h +++ b/runtime/bin/dartutils.h @@ -42,7 +42,7 @@ class CommandLineOptions { public: explicit CommandLineOptions(int max_count) : count_(0), max_count_(max_count), arguments_(nullptr) { - static const int kWordSize = sizeof(intptr_t); + const int kWordSize = sizeof(intptr_t); arguments_ = reinterpret_cast(malloc(max_count * kWordSize)); if (arguments_ == nullptr) { max_count_ = 0; @@ -256,20 +256,20 @@ class DartUtils { // Global state that stores the original working directory.. static const char* original_working_directory; - static const char* const kDartScheme; - static const char* const kAsyncLibURL; - static const char* const kBuiltinLibURL; - static const char* const kCoreLibURL; - static const char* const kInternalLibURL; - static const char* const kIsolateLibURL; - static const char* const kHttpLibURL; - static const char* const kIOLibURL; - static const char* const kIOLibPatchURL; - static const char* const kCLILibURL; - static const char* const kCLILibPatchURL; - static const char* const kUriLibURL; - static const char* const kHttpScheme; - static const char* const kVMServiceLibURL; + static constexpr const char* kDartScheme = "dart:"; + static constexpr const char* kAsyncLibURL = "dart:async"; + static constexpr const char* kBuiltinLibURL = "dart:_builtin"; + static constexpr const char* kCoreLibURL = "dart:core"; + static constexpr const char* kInternalLibURL = "dart:_internal"; + static constexpr const char* kIsolateLibURL = "dart:isolate"; + static constexpr const char* kHttpLibURL = "dart:_http"; + static constexpr const char* kIOLibURL = "dart:io"; + static constexpr const char* kIOLibPatchURL = "dart:io-patch"; + static constexpr const char* kCLILibURL = "dart:cli"; + static constexpr const char* kCLILibPatchURL = "dart:cli-patch"; + static constexpr const char* kUriLibURL = "dart:uri"; + static constexpr const char* kHttpScheme = "http:"; + static constexpr const char* kVMServiceLibURL = "dart:vmservice"; static void SetEnvironment(dart::SimpleHashMap* environment); static Dart_Handle EnvironmentCallback(Dart_Handle name); @@ -298,10 +298,10 @@ class DartUtils { class CObject { public: // These match the constants in sdk/lib/io/common.dart. - static const int kSuccess = 0; - static const int kArgumentError = 1; - static const int kOSError = 2; - static const int kFileClosedError = 3; + static constexpr int kSuccess = 0; + static constexpr int kArgumentError = 1; + static constexpr int kOSError = 2; + static constexpr int kFileClosedError = 3; explicit CObject(Dart_CObject* cobject) : cobject_(cobject) {} Dart_CObject_Type type() { return cobject_->type; } @@ -620,7 +620,7 @@ class ScopedBlockingCall { }; struct MagicNumberData { - static const intptr_t kMaxLength = 8; + static constexpr intptr_t kMaxLength = 8; intptr_t length; const uint8_t bytes[kMaxLength]; diff --git a/runtime/bin/directory.cc b/runtime/bin/directory.cc index fc156c46342..3351ecec44c 100644 --- a/runtime/bin/directory.cc +++ b/runtime/bin/directory.cc @@ -56,8 +56,8 @@ void FUNCTION_NAME(Directory_SetCurrent)(Dart_NativeArguments args) { } void FUNCTION_NAME(Directory_Exists)(Dart_NativeArguments args) { - static const int kExists = 1; - static const int kDoesNotExist = 0; + const int kExists = 1; + const int kDoesNotExist = 0; Namespace* namespc = Namespace::GetNamespace(args, 0); Dart_Handle path = Dart_GetNativeArgument(args, 1); OSError os_error; @@ -212,7 +212,7 @@ void FUNCTION_NAME(Directory_FillWithDirectoryListing)( } } -static const int kAsyncDirectoryListerFieldIndex = 0; +static constexpr int kAsyncDirectoryListerFieldIndex = 0; void FUNCTION_NAME(Directory_GetAsyncDirectoryListerPointer)( Dart_NativeArguments args) { @@ -303,8 +303,8 @@ CObject* Directory::DeleteRequest(const CObjectArray& request) { } CObject* Directory::ExistsRequest(const CObjectArray& request) { - static const int kExists = 1; - static const int kDoesNotExist = 0; + const int kExists = 1; + const int kDoesNotExist = 0; if ((request.Length() < 1) || !request[0]->IsIntptr()) { return CObject::IllegalArgumentError(); } diff --git a/runtime/bin/error_exit.h b/runtime/bin/error_exit.h index 3089566c234..850d0094aec 100644 --- a/runtime/bin/error_exit.h +++ b/runtime/bin/error_exit.h @@ -9,13 +9,13 @@ namespace dart { namespace bin { // Exit code indicating an internal Dart Frontend error. -static const int kDartFrontendErrorExitCode = 252; +constexpr int kDartFrontendErrorExitCode = 252; // Exit code indicating an API error. -static const int kApiErrorExitCode = 253; +constexpr int kApiErrorExitCode = 253; // Exit code indicating a compilation error. -static const int kCompilationErrorExitCode = 254; +constexpr int kCompilationErrorExitCode = 254; // Exit code indicating an unhandled error that is not a compilation error. -static const int kErrorExitCode = 255; +constexpr int kErrorExitCode = 255; void ErrorExit(int exit_code, const char* format, ...); diff --git a/runtime/bin/eventhandler.h b/runtime/bin/eventhandler.h index e102495eefe..9f6cbf6c8b3 100644 --- a/runtime/bin/eventhandler.h +++ b/runtime/bin/eventhandler.h @@ -104,10 +104,10 @@ class InterruptMessage { int64_t data; }; -static const int kInterruptMessageSize = sizeof(InterruptMessage); -static const int kInfinityTimeout = -1; -static const int kTimerId = -1; -static const int kShutdownId = -2; +static constexpr int kInterruptMessageSize = sizeof(InterruptMessage); +static constexpr int kInfinityTimeout = -1; +static constexpr int kTimerId = -1; +static constexpr int kShutdownId = -2; template class CircularLinkedList { @@ -266,7 +266,7 @@ class DescriptorInfoBase { template class DescriptorInfoSingleMixin : public DI { private: - static const int kTokenCount = 16; + static constexpr int kTokenCount = 16; public: DescriptorInfoSingleMixin(intptr_t fd, bool disable_tokens) @@ -356,7 +356,7 @@ class DescriptorInfoSingleMixin : public DI { template class DescriptorInfoMultipleMixin : public DI { private: - static const int kTokenCount = 4; + static constexpr int kTokenCount = 4; static bool SamePortValue(void* key1, void* key2) { return reinterpret_cast(key1) == diff --git a/runtime/bin/eventhandler_android.cc b/runtime/bin/eventhandler_android.cc index 785e7db6924..eafa1681f3a 100644 --- a/runtime/bin/eventhandler_android.cc +++ b/runtime/bin/eventhandler_android.cc @@ -95,7 +95,7 @@ EventHandlerImplementation::EventHandlerImplementation() shutdown_ = false; // The initial size passed to epoll_create is ignored on newer (>= 2.6.8) // Linux versions - static const int kEpollInitialSize = 64; + const int kEpollInitialSize = 64; epoll_fd_ = NO_RETRY_EXPECTED(epoll_create(kEpollInitialSize)); if (epoll_fd_ == -1) { FATAL("Failed creating epoll file descriptor: %i", errno); @@ -377,7 +377,7 @@ void EventHandlerImplementation::HandleTimeout() { void EventHandlerImplementation::Poll(uword args) { ThreadSignalBlocker signal_blocker(SIGPROF); - static const intptr_t kMaxEvents = 16; + const intptr_t kMaxEvents = 16; struct epoll_event events[kMaxEvents]; EventHandler* handler = reinterpret_cast(args); EventHandlerImplementation* handler_impl = &handler->delegate_; diff --git a/runtime/bin/eventhandler_fuchsia.h b/runtime/bin/eventhandler_fuchsia.h index ba30d84e67e..76589b5a260 100644 --- a/runtime/bin/eventhandler_fuchsia.h +++ b/runtime/bin/eventhandler_fuchsia.h @@ -150,7 +150,7 @@ class EventHandlerImplementation { void Shutdown(); private: - static const uint64_t kInterruptPacketKey = 1; + static constexpr uint64_t kInterruptPacketKey = 1; static void Poll(uword args); static void* GetHashmapKeyFromFd(intptr_t fd); diff --git a/runtime/bin/eventhandler_linux.cc b/runtime/bin/eventhandler_linux.cc index bee14547a1a..f78c679ef4c 100644 --- a/runtime/bin/eventhandler_linux.cc +++ b/runtime/bin/eventhandler_linux.cc @@ -89,7 +89,7 @@ EventHandlerImplementation::EventHandlerImplementation() shutdown_ = false; // The initial size passed to epoll_create is ignore on newer (>= // 2.6.8) Linux versions - static const int kEpollInitialSize = 64; + const int kEpollInitialSize = 64; epoll_fd_ = NO_RETRY_EXPECTED(epoll_create(kEpollInitialSize)); if (epoll_fd_ == -1) { FATAL("Failed creating epoll file descriptor: %i", errno); @@ -387,7 +387,7 @@ void EventHandlerImplementation::HandleEvents(struct epoll_event* events, void EventHandlerImplementation::Poll(uword args) { ThreadSignalBlocker signal_blocker(SIGPROF); - static const intptr_t kMaxEvents = 16; + const intptr_t kMaxEvents = 16; struct epoll_event events[kMaxEvents]; EventHandler* handler = reinterpret_cast(args); EventHandlerImplementation* handler_impl = &handler->delegate_; diff --git a/runtime/bin/eventhandler_macos.cc b/runtime/bin/eventhandler_macos.cc index d5020416f21..a3cc6ef4962 100644 --- a/runtime/bin/eventhandler_macos.cc +++ b/runtime/bin/eventhandler_macos.cc @@ -43,7 +43,7 @@ static void RemoveFromKqueue(intptr_t kqueue_fd_, DescriptorInfo* di) { if (!di->tracked_by_kqueue()) { return; } - static const intptr_t kMaxChanges = 2; + const intptr_t kMaxChanges = 2; struct kevent events[kMaxChanges]; EV_SET(events, di->fd(), EVFILT_READ, EV_DELETE, 0, 0, nullptr); VOID_NO_RETRY_EXPECTED(kevent(kqueue_fd_, events, 1, nullptr, 0, nullptr)); @@ -56,7 +56,7 @@ static void RemoveFromKqueue(intptr_t kqueue_fd_, DescriptorInfo* di) { // the events currently of interest. static void AddToKqueue(intptr_t kqueue_fd_, DescriptorInfo* di) { ASSERT(!di->tracked_by_kqueue()); - static const intptr_t kMaxChanges = 2; + const intptr_t kMaxChanges = 2; intptr_t changes = 0; struct kevent events[kMaxChanges]; int flags = EV_ADD; @@ -428,7 +428,7 @@ void EventHandlerImplementation::HandleTimeout() { } void EventHandlerImplementation::EventHandlerEntry(uword args) { - static const intptr_t kMaxEvents = 16; + const intptr_t kMaxEvents = 16; struct kevent events[kMaxEvents]; EventHandler* handler = reinterpret_cast(args); EventHandlerImplementation* handler_impl = &handler->delegate_; diff --git a/runtime/bin/eventhandler_win.cc b/runtime/bin/eventhandler_win.cc index 47a66c85f7a..0fe8b7ef272 100644 --- a/runtime/bin/eventhandler_win.cc +++ b/runtime/bin/eventhandler_win.cc @@ -30,9 +30,9 @@ namespace bin { // kBufferSize must be >= kMaxUDPPackageLength so that a complete UDP packet // can fit in the buffer. -static const int kBufferSize = 64 * 1024; -static const int kStdOverlappedBufferSize = 16 * 1024; -static const int kMaxUDPPackageLength = 64 * 1024; +static constexpr int kBufferSize = 64 * 1024; +static constexpr int kStdOverlappedBufferSize = 16 * 1024; +static constexpr int kMaxUDPPackageLength = 64 * 1024; OverlappedBuffer* OverlappedBuffer::AllocateBuffer(int buffer_size, Operation operation) { @@ -463,8 +463,8 @@ bool ListenSocket::IssueAccept() { // AcceptEx documentation says: "This value must be at least 16 // bytes more than the maximum address length for the transport // protocol in use." - static const int kAcceptExAddressAdditionalBytes = 16; - static const int kAcceptExAddressStorageSize = + const int kAcceptExAddressAdditionalBytes = 16; + const int kAcceptExAddressStorageSize = sizeof(SOCKADDR_STORAGE) + kAcceptExAddressAdditionalBytes; OverlappedBuffer* buffer = OverlappedBuffer::AllocateAcceptBuffer(2 * kAcceptExAddressStorageSize); diff --git a/runtime/bin/ffi_unit_test/run_ffi_unit_tests.cc b/runtime/bin/ffi_unit_test/run_ffi_unit_tests.cc index 8fe87843c7b..d9d7100956d 100644 --- a/runtime/bin/ffi_unit_test/run_ffi_unit_tests.cc +++ b/runtime/bin/ffi_unit_test/run_ffi_unit_tests.cc @@ -17,14 +17,14 @@ namespace dart { namespace compiler { namespace ffi { -static const char* const kNone = "No Test"; -static const char* const kList = "List all Tests"; -static const char* const kAll = "Run all Tests"; +static constexpr const char* kNone = "No Test"; +static constexpr const char* kList = "List all Tests"; +static constexpr const char* kAll = "Run all Tests"; static const char* run_filter = kNone; -static const char* kCommandAll = "--all"; -static const char* kCommandList = "--list"; -static const char* kCommandUpdate = "--update"; +static constexpr const char* kCommandAll = "--all"; +static constexpr const char* kCommandList = "--list"; +static constexpr const char* kCommandUpdate = "--update"; static int run_matches = 0; diff --git a/runtime/bin/file.cc b/runtime/bin/file.cc index 20fcecaacf1..e993f407483 100644 --- a/runtime/bin/file.cc +++ b/runtime/bin/file.cc @@ -20,7 +20,7 @@ namespace dart { namespace bin { -static const int kFileNativeFieldIndex = 0; +static constexpr int kFileNativeFieldIndex = 0; #if !defined(PRODUCT) static bool IsFile(Dart_Handle file_obj) { diff --git a/runtime/bin/file.h b/runtime/bin/file.h index f8e4137757c..f883f904dc7 100644 --- a/runtime/bin/file.h +++ b/runtime/bin/file.h @@ -340,7 +340,7 @@ class File : public ReferenceCounted { static File* FileOpenW(const wchar_t* system_name, FileOpenMode mode); - static const int kClosedFd = -1; + static constexpr int kClosedFd = -1; // FileHandle is an OS specific class which stores data about the file. FileHandle* handle_; // OS specific handle for the file. diff --git a/runtime/bin/file_win.cc b/runtime/bin/file_win.cc index e71c798de90..9e2389bef89 100644 --- a/runtime/bin/file_win.cc +++ b/runtime/bin/file_win.cc @@ -589,8 +589,9 @@ typedef struct _REPARSE_DATA_BUFFER { }; } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; -static const int kReparseDataHeaderSize = sizeof(ULONG) + 2 * sizeof(USHORT); -static const int kMountPointHeaderSize = 4 * sizeof(USHORT); +static constexpr int kReparseDataHeaderSize = + sizeof(ULONG) + 2 * sizeof(USHORT); +static constexpr int kMountPointHeaderSize = 4 * sizeof(USHORT); // Note: CreateLink used to create junctions on Windows instead of true // symbolic links. All File::*Link methods now support handling links created diff --git a/runtime/bin/filter.cc b/runtime/bin/filter.cc index 89345a1086b..89443835995 100644 --- a/runtime/bin/filter.cc +++ b/runtime/bin/filter.cc @@ -15,7 +15,7 @@ namespace bin { const int kZLibFlagUseGZipHeader = 16; const int kZLibFlagAcceptAnyHeader = 32; -static const int kFilterPointerNativeField = 0; +static constexpr int kFilterPointerNativeField = 0; static Dart_Handle GetFilter(Dart_Handle filter_obj, Filter** filter) { ASSERT(filter != nullptr); diff --git a/runtime/bin/filter.h b/runtime/bin/filter.h index 4fe4a50e57d..6680ff5c4c7 100644 --- a/runtime/bin/filter.h +++ b/runtime/bin/filter.h @@ -45,7 +45,7 @@ class Filter { Filter() : initialized_(false) {} private: - static const intptr_t kFilterBufferSize = 64 * KB; + static constexpr intptr_t kFilterBufferSize = 64 * KB; uint8_t processed_buffer_[kFilterBufferSize]; bool initialized_; diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc index 78b6cf825b2..463c1e78a64 100644 --- a/runtime/bin/gen_snapshot.cc +++ b/runtime/bin/gen_snapshot.cc @@ -15,6 +15,7 @@ #include "bin/builtin.h" #include "bin/console.h" #include "bin/dartutils.h" +#include "bin/error_exit.h" #include "bin/eventhandler.h" #include "bin/file.h" #include "bin/loader.h" @@ -37,13 +38,6 @@ namespace dart { namespace bin { -// Exit code indicating an API error. -static const int kApiErrorExitCode = 253; -// Exit code indicating a compilation error. -static const int kCompilationErrorExitCode = 254; -// Exit code indicating an unhandled error that is not a compilation error. -static const int kErrorExitCode = 255; - #define CHECK_RESULT(result) \ if (Dart_IsError(result)) { \ intptr_t exit_code = 0; \ diff --git a/runtime/bin/main_impl.cc b/runtime/bin/main_impl.cc index 6bf35873e8c..aab27b9d187 100644 --- a/runtime/bin/main_impl.cc +++ b/runtime/bin/main_impl.cc @@ -918,8 +918,8 @@ static void DeleteIsolateGroupData(void* callback_data) { delete isolate_group_data; } -static const char* kStdoutStreamId = "Stdout"; -static const char* kStderrStreamId = "Stderr"; +static constexpr const char* kStdoutStreamId = "Stdout"; +static constexpr const char* kStderrStreamId = "Stderr"; static bool ServiceStreamListenCallback(const char* stream_id) { if (strcmp(stream_id, kStdoutStreamId) == 0) { diff --git a/runtime/bin/namespace.cc b/runtime/bin/namespace.cc index 7f80e8b64d4..5fda45b404d 100644 --- a/runtime/bin/namespace.cc +++ b/runtime/bin/namespace.cc @@ -14,7 +14,7 @@ namespace dart { namespace bin { -static const int kNamespaceNativeFieldIndex = 0; +static constexpr int kNamespaceNativeFieldIndex = 0; static void ReleaseNamespace(void* isolate_callback_data, void* peer) { Namespace* namespc = reinterpret_cast(peer); diff --git a/runtime/bin/namespace.h b/runtime/bin/namespace.h index cc9e57a4763..0af583f9a97 100644 --- a/runtime/bin/namespace.h +++ b/runtime/bin/namespace.h @@ -43,7 +43,7 @@ class Namespace : public ReferenceCounted { private: // When namespc_ has this value, it indicates that there is currently // no namespace for resolving absolute paths. - static const intptr_t kNone = 0; + static constexpr intptr_t kNone = 0; explicit Namespace(NamespaceImpl* namespc) : ReferenceCounted(), namespc_(namespc) {} diff --git a/runtime/bin/platform_win.cc b/runtime/bin/platform_win.cc index 567237001f0..65f2b1265f3 100644 --- a/runtime/bin/platform_win.cc +++ b/runtime/bin/platform_win.cc @@ -115,7 +115,7 @@ int Platform::NumberOfProcessors() { // registry because GetVersionEx() and friends lie about the OS version after // Windows 8.1. See: // https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx -static const wchar_t* kCurrentVersion = +static constexpr const wchar_t* kCurrentVersion = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"; static bool GetCurrentVersionDWord(const wchar_t* field, DWORD* value) { diff --git a/runtime/bin/process.cc b/runtime/bin/process.cc index f775ff18c57..3a9d9cbed65 100644 --- a/runtime/bin/process.cc +++ b/runtime/bin/process.cc @@ -17,14 +17,14 @@ namespace dart { namespace bin { -static const int kProcessIdNativeField = 0; +static constexpr int kProcessIdNativeField = 0; // Extract an array of C strings from a list of Dart strings. static char** ExtractCStringList(Dart_Handle strings, Dart_Handle status_handle, const char* error_msg, intptr_t* length) { - static const intptr_t kMaxArgumentListLength = 1024 * 1024; + static constexpr intptr_t kMaxArgumentListLength = 1024 * 1024; ASSERT(Dart_IsList(strings)); intptr_t len = 0; Dart_Handle result = Dart_ListLength(strings, &len); diff --git a/runtime/bin/process.h b/runtime/bin/process.h index 78e67d8a325..9bd547c802b 100644 --- a/runtime/bin/process.h +++ b/runtime/bin/process.h @@ -225,7 +225,7 @@ class SignalInfo { // allocated. class BufferListBase { protected: - static const intptr_t kBufferSize = 16 * 1024; + static constexpr intptr_t kBufferSize = 16 * 1024; class BufferListNode { public: diff --git a/runtime/bin/process_android.cc b/runtime/bin/process_android.cc index 260e0b83622..bfa8202047f 100644 --- a/runtime/bin/process_android.cc +++ b/runtime/bin/process_android.cc @@ -965,7 +965,7 @@ int64_t Process::MaxRSS() { static Mutex* signal_mutex = nullptr; static SignalInfo* signal_handlers = nullptr; -static const int kSignalsCount = 7; +static constexpr int kSignalsCount = 7; static const int kSignals[kSignalsCount] = { SIGHUP, SIGINT, SIGTERM, SIGUSR1, SIGUSR2, SIGWINCH, SIGQUIT // Allow VMService to listen on SIGQUIT. diff --git a/runtime/bin/process_fuchsia.cc b/runtime/bin/process_fuchsia.cc index 2e791762efc..c0aac625534 100644 --- a/runtime/bin/process_fuchsia.cc +++ b/runtime/bin/process_fuchsia.cc @@ -206,7 +206,7 @@ class ExitCodeHandler { } private: - static const uint64_t kShutdownPacketKey = 1; + static constexpr uint64_t kShutdownPacketKey = 1; static void SendShutdownMessage() { zx_port_packet_t pkt; diff --git a/runtime/bin/process_linux.cc b/runtime/bin/process_linux.cc index 91d61b30d23..6f4d3a90dda 100644 --- a/runtime/bin/process_linux.cc +++ b/runtime/bin/process_linux.cc @@ -964,7 +964,7 @@ int64_t Process::MaxRSS() { static Mutex* signal_mutex = nullptr; static SignalInfo* signal_handlers = nullptr; -static const int kSignalsCount = 7; +static constexpr int kSignalsCount = 7; static const int kSignals[kSignalsCount] = { SIGHUP, SIGINT, SIGTERM, SIGUSR1, SIGUSR2, SIGWINCH, SIGQUIT // Allow VMService to listen on SIGQUIT. diff --git a/runtime/bin/process_macos.cc b/runtime/bin/process_macos.cc index a473b658289..981d09fe1ea 100644 --- a/runtime/bin/process_macos.cc +++ b/runtime/bin/process_macos.cc @@ -989,7 +989,7 @@ int64_t Process::MaxRSS() { static Mutex* signal_mutex = nullptr; static SignalInfo* signal_handlers = nullptr; -static const int kSignalsCount = 7; +static constexpr int kSignalsCount = 7; static const int kSignals[kSignalsCount] = { SIGHUP, SIGINT, SIGTERM, SIGUSR1, SIGUSR2, SIGWINCH, SIGQUIT // Allow VMService to listen on SIGQUIT. diff --git a/runtime/bin/process_win.cc b/runtime/bin/process_win.cc index b12db48020f..04687f2d753 100644 --- a/runtime/bin/process_win.cc +++ b/runtime/bin/process_win.cc @@ -24,8 +24,8 @@ namespace dart { namespace bin { -static const int kReadHandle = 0; -static const int kWriteHandle = 1; +static constexpr int kReadHandle = 0; +static constexpr int kWriteHandle = 1; int Process::global_exit_code_ = 0; Mutex* Process::global_exit_code_mutex_ = nullptr; @@ -849,7 +849,7 @@ bool Process::Wait(intptr_t pid, // Create three events for overlapped IO. These are created as already // signalled to ensure they have read called at least once. - static const int kHandles = 3; + const int kHandles = 3; HANDLE events[kHandles]; for (int i = 0; i < kHandles; i++) { events[i] = CreateEvent(nullptr, FALSE, TRUE, nullptr); diff --git a/runtime/bin/run_vm_tests.cc b/runtime/bin/run_vm_tests.cc index 0655856311a..fa8e5bf242b 100644 --- a/runtime/bin/run_vm_tests.cc +++ b/runtime/bin/run_vm_tests.cc @@ -39,9 +39,9 @@ const uint8_t* bin::core_isolate_snapshot_instructions = // Only run tests that match the filter string. The default does not match any // tests. -static const char* const kNone = "No Test or Benchmarks"; -static const char* const kList = "List all Tests and Benchmarks"; -static const char* const kAllBenchmarks = "All Benchmarks"; +static constexpr const char* kNone = "No Test or Benchmarks"; +static constexpr const char* kList = "List all Tests and Benchmarks"; +static constexpr const char* kAllBenchmarks = "All Benchmarks"; static const char* run_filter = kNone; static const char* kernel_snapshot = nullptr; diff --git a/runtime/bin/secure_socket_filter.h b/runtime/bin/secure_socket_filter.h index 815c5b8f57c..0c9fb2b1536 100644 --- a/runtime/bin/secure_socket_filter.h +++ b/runtime/bin/secure_socket_filter.h @@ -54,7 +54,7 @@ class SSLFilter : public ReferenceCounted { }; static const intptr_t kApproximateSize; - static const int kSSLFilterNativeFieldIndex = 0; + static constexpr int kSSLFilterNativeFieldIndex = 0; SSLFilter() : callback_error(nullptr), diff --git a/runtime/bin/secure_socket_utils.h b/runtime/bin/secure_socket_utils.h index 5113c8ecb3a..2dafb72ce88 100644 --- a/runtime/bin/secure_socket_utils.h +++ b/runtime/bin/secure_socket_utils.h @@ -25,7 +25,7 @@ const bool SSL_LOG_CERTS = false; class SecureSocketUtils : public AllStatic { public: - static const int SSL_ERROR_MESSAGE_BUFFER_SIZE = 1000; + static constexpr int SSL_ERROR_MESSAGE_BUFFER_SIZE = 1000; static void ThrowIOException(int status, const char* exception_type, diff --git a/runtime/bin/security_context.h b/runtime/bin/security_context.h index a1feb7d6a0a..7081967554d 100644 --- a/runtime/bin/security_context.h +++ b/runtime/bin/security_context.h @@ -24,8 +24,8 @@ typedef void (*TrustEvaluateHandlerFunc)(Dart_Port dest_port_id, class SSLCertContext : public ReferenceCounted { public: static const intptr_t kApproximateSize; - static const int kSecurityContextNativeFieldIndex = 0; - static const int kX509NativeFieldIndex = 0; + static constexpr int kSecurityContextNativeFieldIndex = 0; + static constexpr int kX509NativeFieldIndex = 0; explicit SSLCertContext(SSL_CTX* context) : ReferenceCounted(), diff --git a/runtime/bin/snapshot_utils.cc b/runtime/bin/snapshot_utils.cc index 1faafa0e7bd..1268c91d95f 100644 --- a/runtime/bin/snapshot_utils.cc +++ b/runtime/bin/snapshot_utils.cc @@ -26,8 +26,8 @@ namespace dart { namespace bin { -static const int64_t kAppSnapshotHeaderSize = 5 * kInt64Size; -static const int64_t kAppSnapshotPageSize = 16 * KB; +static constexpr int64_t kAppSnapshotHeaderSize = 5 * kInt64Size; +static constexpr int64_t kAppSnapshotPageSize = 16 * KB; static const char kMachOAppSnapshotNoteName[] DART_UNUSED = "__dart_app_snap"; diff --git a/runtime/bin/socket.cc b/runtime/bin/socket.cc index d5e11890bae..d441945cabe 100644 --- a/runtime/bin/socket.cc +++ b/runtime/bin/socket.cc @@ -23,7 +23,7 @@ namespace dart { namespace bin { -static const int kSocketIdNativeField = 0; +static constexpr int kSocketIdNativeField = 0; ListeningSocketRegistry* globalTcpListeningSocketRegistry = nullptr; diff --git a/runtime/bin/socket.h b/runtime/bin/socket.h index fb1dc0dfad1..4da25e5b6a5 100644 --- a/runtime/bin/socket.h +++ b/runtime/bin/socket.h @@ -119,7 +119,7 @@ class Socket : public ReferenceCounted { udp_receive_buffer_ = nullptr; } - static const int kClosedFd = -1; + static constexpr int kClosedFd = -1; static bool short_socket_read_; static bool short_socket_write_; @@ -135,7 +135,7 @@ class Socket : public ReferenceCounted { class ServerSocket { public: - static const intptr_t kTemporaryFailure = -2; + static constexpr intptr_t kTemporaryFailure = -2; static intptr_t Accept(intptr_t fd); @@ -245,7 +245,7 @@ class ListeningSocketRegistry { } }; - static const intptr_t kInitialSocketsCount = 8; + static constexpr intptr_t kInitialSocketsCount = 8; OSSocket* FindOSSocketWithAddress(OSSocket* current, const RawAddr& addr) { while (current != nullptr) { diff --git a/runtime/bin/socket_base.h b/runtime/bin/socket_base.h index 26fc19be839..ae43bfe0d7e 100644 --- a/runtime/bin/socket_base.h +++ b/runtime/bin/socket_base.h @@ -91,7 +91,7 @@ class SocketAddress { // Unix domain address is only on Linux, Mac OS and Android now. // unix(7) require sun_path to be 108 bytes on Linux and Android, 104 bytes on // Mac OS. - static const intptr_t kMaxUnixPathLength = + static constexpr intptr_t kMaxUnixPathLength = sizeof(((struct sockaddr_un*)nullptr)->sun_path); char as_string_[kMaxUnixPathLength]; #else diff --git a/runtime/bin/sync_socket.cc b/runtime/bin/sync_socket.cc index df15dfb6a26..00d3ec4160f 100644 --- a/runtime/bin/sync_socket.cc +++ b/runtime/bin/sync_socket.cc @@ -36,7 +36,7 @@ namespace dart { namespace bin { -static const int kSocketIdNativeField = 0; +static constexpr int kSocketIdNativeField = 0; void FUNCTION_NAME(SynchronousSocket_LookupRequest)(Dart_NativeArguments args) { if (Dart_GetNativeArgumentCount(args) != 2) { diff --git a/runtime/bin/sync_socket.h b/runtime/bin/sync_socket.h index 85f3554775d..07cd972d11a 100644 --- a/runtime/bin/sync_socket.h +++ b/runtime/bin/sync_socket.h @@ -39,7 +39,7 @@ class SynchronousSocket { static void Close(intptr_t fd); private: - static const int kClosedFd = -1; + static constexpr int kClosedFd = -1; intptr_t fd_; diff --git a/runtime/bin/test_utils.cc b/runtime/bin/test_utils.cc index 56bf9c2f53c..bfa9570e33c 100644 --- a/runtime/bin/test_utils.cc +++ b/runtime/bin/test_utils.cc @@ -13,7 +13,7 @@ const char* GetFileName(const char* name) { if (bin::File::Exists(nullptr, name)) { return name; } else { - static const int kRuntimeLength = strlen("runtime/"); + const int kRuntimeLength = strlen("runtime/"); return name + kRuntimeLength; } } diff --git a/runtime/bin/thread.h b/runtime/bin/thread.h index 139230fe563..ad56620c8f6 100644 --- a/runtime/bin/thread.h +++ b/runtime/bin/thread.h @@ -78,7 +78,7 @@ class Monitor { public: enum WaitResult { kNotified, kTimedOut }; - static const int64_t kNoTimeout = 0; + static constexpr int64_t kNoTimeout = 0; Monitor(); ~Monitor(); diff --git a/runtime/bin/utils_win.cc b/runtime/bin/utils_win.cc index 155e1bcf729..b05e4f28766 100644 --- a/runtime/bin/utils_win.cc +++ b/runtime/bin/utils_win.cc @@ -20,7 +20,7 @@ namespace bin { // epoch (January 1, 1970 UTC) measured in 100ns intervals. // // See https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-filetime -static const int64_t kFileTimeEpoch = 116444736000000000LL; +static constexpr int64_t kFileTimeEpoch = 116444736000000000LL; // Although win32 uses 64-bit integers for representing timestamps, // these are packed into a FILETIME structure. The FILETIME @@ -50,7 +50,7 @@ void FormatMessageIntoBuffer(DWORD code, wchar_t* buffer, int buffer_length) { } FILETIME GetFiletimeFromMillis(int64_t millis) { - static const int64_t kTimeScaler = 10000; // 100 ns to ms. + const int64_t kTimeScaler = 10000; // 100 ns to ms. TimeStamp t; t.t_ = millis * kTimeScaler + kFileTimeEpoch; return t.ft_; @@ -68,7 +68,7 @@ void OSError::SetCodeAndMessage(SubSystem sub_system, int code) { set_sub_system(sub_system); set_code(code); - static const int kMaxMessageLength = 256; + const int kMaxMessageLength = 256; wchar_t message[kMaxMessageLength]; FormatMessageIntoBuffer(code_, message, kMaxMessageLength); char* utf8 = StringUtilsWin::WideToUtf8(message); @@ -194,7 +194,7 @@ bool ShellUtils::GetUtf8Argv(int argc, char** argv) { } static int64_t GetCurrentTimeMicros() { - static const int64_t kTimeScaler = 10; // 100 ns to us. + const int64_t kTimeScaler = 10; // 100 ns to us. TimeStamp time; GetSystemTimeAsFileTime(&time.ft_); diff --git a/runtime/bin/vmservice_impl.cc b/runtime/bin/vmservice_impl.cc index 841a8171da3..aca8d105055 100644 --- a/runtime/bin/vmservice_impl.cc +++ b/runtime/bin/vmservice_impl.cc @@ -31,7 +31,7 @@ namespace bin { return false; \ } -static const char* const kVMServiceIOLibraryUri = "dart:vmservice_io"; +static constexpr const char* kVMServiceIOLibraryUri = "dart:vmservice_io"; void NotifyServerState(Dart_NativeArguments args) { Dart_EnterScope(); diff --git a/runtime/bin/vmservice_impl.h b/runtime/bin/vmservice_impl.h index 23ecca92151..d8123f99593 100644 --- a/runtime/bin/vmservice_impl.h +++ b/runtime/bin/vmservice_impl.h @@ -34,7 +34,7 @@ class VmService { static const char* GetServerAddress() { return &server_uri_[0]; } private: - static const intptr_t kServerUriStringBufferSize = 1024; + static constexpr intptr_t kServerUriStringBufferSize = 1024; friend void NotifyServerState(Dart_NativeArguments args); static void SetServerAddress(const char* server_uri_);