|
@@ -242,9 +242,15 @@ static HashTable *php_v8js_v8_get_debug_info(zval *object, int *is_temp TSRMLS_D
|
|
|
|
|
|
static zend_function *php_v8js_v8_get_method(zval **object_ptr, char *method, int method_len ZEND_HASH_KEY_DC TSRMLS_DC) /* {{{ */
|
|
static zend_function *php_v8js_v8_get_method(zval **object_ptr, char *method, int method_len ZEND_HASH_KEY_DC TSRMLS_DC) /* {{{ */
|
|
{
|
|
{
|
|
|
|
+ php_v8js_object *obj = (php_v8js_object *) zend_object_store_get_object(*object_ptr TSRMLS_CC);
|
|
zend_function *f;
|
|
zend_function *f;
|
|
|
|
+
|
|
|
|
+ v8::Locker locker(obj->isolate);
|
|
|
|
+ v8::Isolate::Scope isolate_scope(obj->isolate);
|
|
|
|
+ v8::HandleScope local_scope(obj->isolate);
|
|
|
|
+ v8::Local<v8::Context> temp_context = v8::Context::New(obj->isolate);
|
|
|
|
+ v8::Context::Scope temp_scope(temp_context);
|
|
v8::Local<v8::String> jsKey = V8JS_STRL(method, method_len);
|
|
v8::Local<v8::String> jsKey = V8JS_STRL(method, method_len);
|
|
- php_v8js_object *obj = (php_v8js_object *) zend_object_store_get_object(*object_ptr TSRMLS_CC);
|
|
|
|
|
|
|
|
if (!obj->v8obj.IsEmpty() && obj->v8obj->IsObject() && !obj->v8obj->IsFunction()) {
|
|
if (!obj->v8obj.IsEmpty() && obj->v8obj->IsObject() && !obj->v8obj->IsFunction()) {
|
|
v8::Local<v8::Object> jsObj = obj->v8obj->ToObject();
|
|
v8::Local<v8::Object> jsObj = obj->v8obj->ToObject();
|
|
@@ -283,6 +289,12 @@ static int php_v8js_v8_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS) /
|
|
zend_get_parameters_array_ex(argc, argv);
|
|
zend_get_parameters_array_ex(argc, argv);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ v8::Locker locker(obj->isolate);
|
|
|
|
+ v8::Isolate::Scope isolate_scope(obj->isolate);
|
|
|
|
+ v8::HandleScope local_scope(obj->isolate);
|
|
|
|
+ v8::Local<v8::Context> temp_context = v8::Context::New(obj->isolate);
|
|
|
|
+ v8::Context::Scope temp_scope(temp_context);
|
|
|
|
+
|
|
v8::Local<v8::String> method_name = V8JS_SYML(method, strlen(method));
|
|
v8::Local<v8::String> method_name = V8JS_SYML(method, strlen(method));
|
|
v8::Local<v8::Object> v8obj = obj->v8obj->ToObject();
|
|
v8::Local<v8::Object> v8obj = obj->v8obj->ToObject();
|
|
v8::Local<v8::Function> cb;
|
|
v8::Local<v8::Function> cb;
|