From dfb6b1db46d17b633e192d2a32bb2fd91c71b688 Mon Sep 17 00:00:00 2001 From: Stefan Siegl Date: Thu, 11 Dec 2014 20:03:31 +0100 Subject: [PATCH] Handle absent isolate in V8Js::__destruct --- v8js.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/v8js.cc b/v8js.cc index ab77766..280e12f 100644 --- a/v8js.cc +++ b/v8js.cc @@ -1491,8 +1491,15 @@ static PHP_METHOD(V8Js, checkString) __destruct for V8Js */ static PHP_METHOD(V8Js, __destruct) { - V8JS_BEGIN_CTX(c, getThis()); + php_v8js_ctx *c = (php_v8js_ctx *) zend_object_store_get_object(getThis() TSRMLS_CC); + if(!c->isolate) { + /* c->isolate is initialized by __construct, which wasn't called if this + * instance was deserialized (which we already caught in __wakeup). */ + return; + } + + V8JS_CTX_PROLOGUE(c); if(v8js_debug_context == c) { v8::Debug::DisableAgent(); v8js_debug_context = NULL;