diff --git a/php_v8js_macros.h b/php_v8js_macros.h index 9fd430c..cc7aaa4 100644 --- a/php_v8js_macros.h +++ b/php_v8js_macros.h @@ -115,6 +115,9 @@ void v8js_register_accessors(std::vector *accessor_list, v8: /* Module globals */ ZEND_BEGIN_MODULE_GLOBALS(v8js) int v8_initialized; +#if !defined(_WIN32) && PHP_V8_API_VERSION >= 3029036 + v8::Platform *v8_platform; +#endif HashTable *extensions; /* Ini globals */ diff --git a/v8js.cc b/v8js.cc index c622c3e..4ed5bcd 100755 --- a/v8js.cc +++ b/v8js.cc @@ -200,6 +200,14 @@ static PHP_GSHUTDOWN_FUNCTION(v8js) v8js_globals->timer_stack.~deque(); v8js_globals->timer_mutex.~mutex(); #endif + + if (v8js_globals->v8_initialized) { + v8::V8::Dispose(); + v8::V8::ShutdownPlatform(); +#if !defined(_WIN32) && PHP_V8_API_VERSION >= 3029036 + delete v8js_globals->v8_platform; +#endif + } } /* }}} */ diff --git a/v8js_v8.cc b/v8js_v8.cc index 742c559..a202c8a 100644 --- a/v8js_v8.cc +++ b/v8js_v8.cc @@ -42,8 +42,8 @@ void v8js_v8_init(TSRMLS_D) /* {{{ */ } #if !defined(_WIN32) && PHP_V8_API_VERSION >= 3029036 - v8::Platform* platform = v8::platform::CreateDefaultPlatform(); - v8::V8::InitializePlatform(platform); + V8JSG(v8_platform) = v8::platform::CreateDefaultPlatform(); + v8::V8::InitializePlatform(V8JSG(v8_platform)); #endif /* Set V8 command line flags (must be done before V8::Initialize()!) */