@@ -67,7 +67,6 @@ struct v8js_jsext {
6767 int deps_count;
6868 zend_string *name;
6969 zend_string *source;
70- v8::Extension *extension;
7170};
7271/* }}} */
7372
@@ -272,7 +271,6 @@ static void v8js_jsext_free_storage(v8js_jsext *jsext) /* {{{ */
272271 if (jsext->deps ) {
273272 v8js_free_ext_strarr (jsext->deps , jsext->deps_count );
274273 }
275- delete jsext->extension ;
276274
277275 // Free the persisted non-interned strings we allocated.
278276 if (jsext->name ) {
@@ -1054,7 +1052,7 @@ static int v8js_register_extension(zend_string *name, zend_string *source, zval
10541052 zend_hash_copy (jsext->deps_ht , Z_ARRVAL_P (deps_arr), v8js_persistent_zval_ctor);
10551053 }
10561054
1057- jsext-> extension = new v8::Extension (ZSTR_VAL (jsext->name ), ZSTR_VAL (jsext->source ), jsext->deps_count , jsext->deps );
1055+ v8::Extension * extension = new v8::Extension (ZSTR_VAL (jsext->name ), ZSTR_VAL (jsext->source ), jsext->deps_count , jsext->deps );
10581056
10591057 if (!zend_hash_add_ptr (v8js_process_globals.extensions , jsext->name , jsext)) {
10601058 v8js_jsext_free_storage (jsext);
@@ -1068,8 +1066,8 @@ static int v8js_register_extension(zend_string *name, zend_string *source, zval
10681066 v8js_process_globals.lock .unlock ();
10691067#endif
10701068
1071- jsext-> extension ->set_auto_enable (auto_enable ? true : false );
1072- v8::RegisterExtension (jsext-> extension );
1069+ extension->set_auto_enable (auto_enable ? true : false );
1070+ v8::RegisterExtension (std::unique_ptr<v8::Extension>( extension) );
10731071
10741072 return SUCCESS;
10751073}
0 commit comments