summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2013-07-23 17:09:09 +0200
committerBen Noordhuis <info@bnoordhuis.nl>2013-07-23 17:12:17 +0200
commite20811a62881603ae2b2471a34f21d88716be99f (patch)
tree72ea144eeda39107a150331a811f2b4b0628173a
parented806385bfd6d7d0e7e31b49586a78dd33d82d37 (diff)
downloadnode-new-e20811a62881603ae2b2471a34f21d88716be99f.tar.gz
src: os: use Number::New() for CPU info
The return values from uv_cpu_info() don't necessarily fit in a 32 bits signed integer. Fixes #5732.
-rw-r--r--src/node_os.cc25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/node_os.cc b/src/node_os.cc
index 663fa9c6bf..4b325d8207 100644
--- a/src/node_os.cc
+++ b/src/node_os.cc
@@ -125,24 +125,21 @@ static Handle<Value> GetCPUInfo(const Arguments& args) {
Local<Array> cpus = Array::New();
for (i = 0; i < count; i++) {
+ uv_cpu_info_t* ci = cpu_infos + i;
+
Local<Object> times_info = Object::New();
- times_info->Set(String::New("user"),
- Integer::New(cpu_infos[i].cpu_times.user));
- times_info->Set(String::New("nice"),
- Integer::New(cpu_infos[i].cpu_times.nice));
- times_info->Set(String::New("sys"),
- Integer::New(cpu_infos[i].cpu_times.sys));
- times_info->Set(String::New("idle"),
- Integer::New(cpu_infos[i].cpu_times.idle));
- times_info->Set(String::New("irq"),
- Integer::New(cpu_infos[i].cpu_times.irq));
+ times_info->Set(String::New("user"), Number::New(ci->cpu_times.user));
+ times_info->Set(String::New("nice"), Number::New(ci->cpu_times.nice));
+ times_info->Set(String::New("sys"), Number::New(ci->cpu_times.sys));
+ times_info->Set(String::New("idle"), Number::New(ci->cpu_times.idle));
+ times_info->Set(String::New("irq"), Number::New(ci->cpu_times.irq));
Local<Object> cpu_info = Object::New();
- cpu_info->Set(String::New("model"), String::New(cpu_infos[i].model));
- cpu_info->Set(String::New("speed"),
- Integer::New(cpu_infos[i].speed));
+ cpu_info->Set(String::New("model"), String::New(ci->model));
+ cpu_info->Set(String::New("speed"), Number::New(ci->speed));
cpu_info->Set(String::New("times"), times_info);
- (*cpus)->Set(i,cpu_info);
+
+ (*cpus)->Set(i, cpu_info);
}
uv_free_cpu_info(cpu_infos, count);