@@ -84,18 +84,20 @@ int WebCLEvent::getStatus()
84
84
return CL_INVALID_VALUE;
85
85
}
86
86
87
- unsigned WebCLEvent::getProfilingInfo (int paramName, ExceptionState& es)
87
+ ScriptValue WebCLEvent::getProfilingInfo (ScriptState* scriptState, unsigned paramName, ExceptionState& es)
88
88
{
89
+ v8::Isolate* isolate = scriptState->isolate ();
90
+
89
91
if (isReleased ()) {
90
92
es.throwWebCLException (WebCLException::INVALID_EVENT, WebCLException::invalidEventMessage);
91
- return 0 ;
93
+ return ScriptValue (scriptState, v8::Null (isolate)) ;
92
94
}
93
95
94
96
int status = getStatus ();
95
97
unsigned properties = m_commandQueue ? m_commandQueue->getProperties () : 0 ;
96
98
if (isUserEvent () || status != CL_COMPLETE || !(properties & CL_QUEUE_PROFILING_ENABLE)) {
97
99
es.throwWebCLException (WebCLException::PROFILING_INFO_NOT_AVAILABLE, WebCLException::profilingInfoNotAvailableMessage);
98
- return 0 ;
100
+ return ScriptValue (scriptState, v8::Null (isolate)) ;
99
101
}
100
102
101
103
cl_int err = CL_SUCCESS;
@@ -104,30 +106,30 @@ unsigned WebCLEvent::getProfilingInfo(int paramName, ExceptionState& es)
104
106
case CL_PROFILING_COMMAND_QUEUED:
105
107
err = clGetEventProfilingInfo (m_clEvent, CL_PROFILING_COMMAND_QUEUED, sizeof (cl_ulong), &ulongUnits, nullptr );
106
108
if (err == CL_SUCCESS)
107
- return static_cast < unsigned long long >(ulongUnits);
109
+ return ScriptValue (scriptState, v8::Number::New (isolate, static_cast < double >(ulongUnits)) );
108
110
break ;
109
111
case CL_PROFILING_COMMAND_SUBMIT:
110
112
err = clGetEventProfilingInfo (m_clEvent, CL_PROFILING_COMMAND_SUBMIT, sizeof (cl_ulong), &ulongUnits, nullptr );
111
113
if (err == CL_SUCCESS)
112
- return static_cast < unsigned long long >(ulongUnits);
114
+ return ScriptValue (scriptState, v8::Number::New (isolate, static_cast < double >(ulongUnits)) );
113
115
break ;
114
116
case CL_PROFILING_COMMAND_START:
115
117
err = clGetEventProfilingInfo (m_clEvent, CL_PROFILING_COMMAND_START, sizeof (cl_ulong), &ulongUnits, nullptr );
116
118
if (err == CL_SUCCESS)
117
- return static_cast < unsigned long long >(ulongUnits);
119
+ return ScriptValue (scriptState, v8::Number::New (isolate, static_cast < double >(ulongUnits)) );
118
120
break ;
119
121
case CL_PROFILING_COMMAND_END:
120
122
err = clGetEventProfilingInfo (m_clEvent, CL_PROFILING_COMMAND_END, sizeof (cl_ulong), &ulongUnits, nullptr );
121
123
if (err == CL_SUCCESS)
122
- return static_cast < unsigned long long >(ulongUnits);
124
+ return ScriptValue (scriptState, v8::Number::New (isolate, static_cast < double >(ulongUnits)) );
123
125
break ;
124
126
default :
125
127
es.throwWebCLException (WebCLException::INVALID_VALUE, WebCLException::invalidValueMessage);
126
- return 0 ;
128
+ return ScriptValue (scriptState, v8::Null (isolate)) ;
127
129
}
128
130
129
131
WebCLException::throwException (err, es);
130
- return 0 ;
132
+ return ScriptValue (scriptState, v8::Null (isolate)) ;
131
133
}
132
134
133
135
void WebCLEvent::setCallback (unsigned commandExecCallbackType, WebCLCallback* callback, ExceptionState& es)
0 commit comments