From: Ben Noordhuis Date: Tue, 23 Jul 2013 15:09:09 +0000 (+0200) Subject: src: os: use Number::New() for CPU info X-Git-Tag: v0.10.14~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e20811a62881603ae2b2471a34f21d88716be99f;p=platform%2Fupstream%2Fnodejs.git 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. --- diff --git a/src/node_os.cc b/src/node_os.cc index 663fa9c6b..4b325d820 100644 --- a/src/node_os.cc +++ b/src/node_os.cc @@ -125,24 +125,21 @@ static Handle GetCPUInfo(const Arguments& args) { Local cpus = Array::New(); for (i = 0; i < count; i++) { + uv_cpu_info_t* ci = cpu_infos + i; + Local 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 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);