diff --git a/lib/os.js b/lib/os.js index 24c9eab90d6e9e..fac1ec0fbf443d 100644 --- a/lib/os.js +++ b/lib/os.js @@ -92,16 +92,17 @@ function cpus() { // [] is a bugfix for a regression introduced in 51cea61 const data = getCPUs() || []; const result = []; - for (var i = 0; i < data.length; i += 7) { + let i = 0; + while (i < data.length) { result.push({ - model: data[i], - speed: data[i + 1], + model: data[i++], + speed: data[i++], times: { - user: data[i + 2], - nice: data[i + 3], - sys: data[i + 4], - idle: data[i + 5], - irq: data[i + 6] + user: data[i++], + nice: data[i++], + sys: data[i++], + idle: data[i++], + irq: data[i++] } }); } diff --git a/src/node_os.cc b/src/node_os.cc index 17b507d8e3a37d..2cbc88bc4e957d 100644 --- a/src/node_os.cc +++ b/src/node_os.cc @@ -126,15 +126,15 @@ static void GetCPUInfo(const FunctionCallbackInfo& args) { // The array is in the format // [model, speed, (5 entries of cpu_times), model2, speed2, ...] std::vector> result(count * 7); - for (int i = 0; i < count; i++) { + for (int i = 0, j = 0; i < count; i++) { uv_cpu_info_t* ci = cpu_infos + i; - result[i * 7] = OneByteString(isolate, ci->model); - result[i * 7 + 1] = Number::New(isolate, ci->speed); - result[i * 7 + 2] = Number::New(isolate, ci->cpu_times.user); - result[i * 7 + 3] = Number::New(isolate, ci->cpu_times.nice); - result[i * 7 + 4] = Number::New(isolate, ci->cpu_times.sys); - result[i * 7 + 5] = Number::New(isolate, ci->cpu_times.idle); - result[i * 7 + 6] = Number::New(isolate, ci->cpu_times.irq); + result[j++] = OneByteString(isolate, ci->model); + result[j++] = Number::New(isolate, ci->speed); + result[j++] = Number::New(isolate, ci->cpu_times.user); + result[j++] = Number::New(isolate, ci->cpu_times.nice); + result[j++] = Number::New(isolate, ci->cpu_times.sys); + result[j++] = Number::New(isolate, ci->cpu_times.idle); + result[j++] = Number::New(isolate, ci->cpu_times.irq); } uv_free_cpu_info(cpu_infos, count);