diff --git a/lib/ApplicationFeatures/V8PlatformFeature.cpp b/lib/ApplicationFeatures/V8PlatformFeature.cpp index 7cca582502..0690ca0915 100644 --- a/lib/ApplicationFeatures/V8PlatformFeature.cpp +++ b/lib/ApplicationFeatures/V8PlatformFeature.cpp @@ -60,7 +60,7 @@ void V8PlatformFeature::collectOptions( options->addHiddenOption("--javascript.v8-options", "options to pass to v8", new VectorParameter(&_v8Options)); - options->addOption("--javascript.v8-max-heap", "maximal heap size", + options->addOption("--javascript.v8-max-heap", "maximal heap size (in MB)", new UInt64Parameter(&_v8MaxHeap)); } @@ -75,6 +75,13 @@ void V8PlatformFeature::validateOptions( exit(EXIT_SUCCESS); } } + + if (0 < _v8MaxHeap) { + if (_v8MaxHeap > (std::numeric_limits::max)()) { + LOG(FATAL) << "value for '--javascript.v8-max-heap' exceeds maximum value " << (std::numeric_limits::max)(); + FATAL_ERROR_EXIT(); + } + } } void V8PlatformFeature::start() { @@ -160,7 +167,7 @@ v8::Isolate* V8PlatformFeature::createIsolate() { createParams.array_buffer_allocator = _allocator.get(); if (0 < _v8MaxHeap) { - createParams.constraints.set_max_old_space_size(_v8MaxHeap); + createParams.constraints.set_max_old_space_size(static_cast(_v8MaxHeap)); } auto isolate = v8::Isolate::New(createParams); diff --git a/lib/Basics/HybridLogicalClock.cpp b/lib/Basics/HybridLogicalClock.cpp index faaff99126..0f9105ea68 100644 --- a/lib/Basics/HybridLogicalClock.cpp +++ b/lib/Basics/HybridLogicalClock.cpp @@ -26,7 +26,7 @@ namespace { template constexpr DurationT maxDuration() noexcept { - return DurationT{std::numeric_limits::max()}; + return DurationT{(std::numeric_limits::max)()}; } template diff --git a/lib/Basics/HybridLogicalClock.h b/lib/Basics/HybridLogicalClock.h index e4f99e3dbf..3c285e2be2 100644 --- a/lib/Basics/HybridLogicalClock.h +++ b/lib/Basics/HybridLogicalClock.h @@ -170,7 +170,7 @@ class HybridLogicalClock { static signed char decodeTable[256]; }; -}; -}; +} +} #endif