src: use Number::New() for heapTotal/heapUsed
authorBen Noordhuis <info@bnoordhuis.nl>
Fri, 13 Mar 2015 20:54:40 +0000 (21:54 +0100)
committerBen Noordhuis <info@bnoordhuis.nl>
Mon, 16 Mar 2015 17:02:24 +0000 (18:02 +0100)
With --max_old_space_size=12345 it's possible to create a JS heap that
is larger than what fits in an unsigned int so use Number::New() rather
than Integer::NewFromUnsigned().

Performance-wise, it doesn't matter much.  If V8 can fit the double in
a SMI, it will.

PR-URL: https://github.com/iojs/io.js/pull/1148
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
src/node.cc

index ba4118a..5e906fe 100644 (file)
@@ -1932,10 +1932,10 @@ void MemoryUsage(const FunctionCallbackInfo<Value>& args) {
   HeapStatistics v8_heap_stats;
   env->isolate()->GetHeapStatistics(&v8_heap_stats);
 
-  Local<Integer> heap_total =
-      Integer::NewFromUnsigned(env->isolate(), v8_heap_stats.total_heap_size());
-  Local<Integer> heap_used =
-      Integer::NewFromUnsigned(env->isolate(), v8_heap_stats.used_heap_size());
+  Local<Number> heap_total =
+      Number::New(env->isolate(), v8_heap_stats.total_heap_size());
+  Local<Number> heap_used =
+      Number::New(env->isolate(), v8_heap_stats.used_heap_size());
 
   Local<Object> info = Object::New(env->isolate());
   info->Set(env->rss_string(), Number::New(env->isolate(), rss));