diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2013-07-23 17:09:09 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2013-07-23 17:12:17 +0200 |
commit | e20811a62881603ae2b2471a34f21d88716be99f (patch) | |
tree | 72ea144eeda39107a150331a811f2b4b0628173a | |
parent | ed806385bfd6d7d0e7e31b49586a78dd33d82d37 (diff) | |
download | node-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.cc | 25 |
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); |