mikeseven / node-opencl

Low-level OpenCL 1.x and 2.x bindgings for node.js
156 stars 33 forks source link

Event Command Execution Status casted to invalid JS type (possibly) #60

Open zackpudil opened 6 years ago

zackpudil commented 6 years ago

In src/event.cpp:68:

case CL_EVENT_COMMAND_EXECUTION_STATUS:
{
  cl_int val;
  CHECK_ERR(::clGetEventInfo(ev->getRaw(),param_name,sizeof(cl_int), &val, NULL))
  info.GetReturnValue().Set(JS_INT(val)); // <---- this line right heer should use JS_NUM?
}

the return value of the event execution status is casted to an unsigned int. Shouldn't that use the JS_NUM cast since it's possible to return negative values for errors?

Currently if the CL_EVENT_COMMAND_EXECUTION_STATUS is an error (negative number) the returned status is some big number (e.g 4294967291) because two's compliment being ignored due to unsigned int case. 4294967291 should display as -5.

mikeseven commented 6 years ago

Ohhh indeed.

Thanks!

—mike

On Mar 9, 2018, at 7:28 PM, zack pudil notifications@github.com<mailto:notifications@github.com> wrote:

In src/event.cpp:68:

case CL_EVENT_COMMAND_EXECUTION_STATUS: { cl_int val; CHECK_ERR(::clGetEventInfo(ev->getRaw(),param_name,sizeof(cl_int), &val, NULL)) info.GetReturnValue().Set(JS_INT(val)); // <---- this line right heer should use JS_NUM? }

the return value of the event execution status is casted to an unsigned int. Shouldn't that use the JS_NUM cast since it's possible to return negative values for errors?

Currently if the CL_EVENT_COMMAND_EXECUTION_STATUS is an error (negative number) the returned status is some big number (e.g 4294967291) because two's compliment being ignored due to unsigned int case. Result should display -5.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/mikeseven/node-opencl/issues/60, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAxYLBlLtokGePTyIz0fLoMja-E3ZVUzks5tc0hOgaJpZM4SlHpj.