فهرست منبع

Don't create v8::HandleScope in v8js_wrap_generator

Stefan Siegl 9 سال پیش
والد
کامیت
80575beecc
3فایلهای تغییر یافته به همراه4 افزوده شده و 6 حذف شده
  1. 2 3
      v8js_generator_export.cc
  2. 1 1
      v8js_generator_export.h
  3. 1 2
      v8js_object_export.cc

+ 2 - 3
v8js_generator_export.cc

@@ -17,16 +17,15 @@
 #include <assert.h>
 #include "php_v8js_macros.h"
 
-v8::Local<v8::Value> v8js_wrap_generator(v8js_ctx *ctx, v8::Local<v8::Value> wrapped_object) /* {{{ */
+v8::Local<v8::Value> v8js_wrap_generator(v8::Isolate *isolate, v8::Local<v8::Value> wrapped_object) /* {{{ */
 {
 	v8::Local<v8::Value> result;
-	V8JS_CTX_PROLOGUE_EX(ctx, result);
 
 	assert(!wrapped_object.IsEmpty());
 	assert(wrapped_object->IsObject());
 
 	v8::TryCatch try_catch;
-	v8::Local<v8::String> source = v8::String::NewFromUtf8(ctx->isolate, "(\
+	v8::Local<v8::String> source = v8::String::NewFromUtf8(isolate, "(\
 function(wrapped_object) {					\
 	return (function*() {					\
 		for(;;) {							\

+ 1 - 1
v8js_generator_export.h

@@ -13,7 +13,7 @@
 #ifndef V8JS_GENERATOR_EXPORT_H
 #define V8JS_GENERATOR_EXPORT_H
 
-v8::Local<v8::Value> v8js_wrap_generator(v8js_ctx *ctx, v8::Local<v8::Value> wrapped_object);
+v8::Local<v8::Value> v8js_wrap_generator(v8::Isolate *isolate, v8::Local<v8::Value> wrapped_object);
 
 #endif /* V8JS_GENERATOR_EXPORT_H */
 

+ 1 - 2
v8js_object_export.cc

@@ -962,8 +962,7 @@ v8::Handle<v8::Value> v8js_hash_to_jsobj(zval *value, v8::Isolate *isolate TSRML
 		if (ce == zend_ce_generator) {
 			/* Wrap PHP Generator object in a wrapper function that provides
 			 * ES6 style behaviour. */
-			v8js_ctx *ctx = (v8js_ctx *) isolate->GetData(0);
-			wrapped_object = v8js_wrap_generator(ctx, wrapped_object);
+			wrapped_object = v8js_wrap_generator(isolate, wrapped_object);
 		}
 
 		return wrapped_object;