From 110e01a21eef8827a0c449f23139e25a9e32e181 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 18 Feb 2014 22:35:54 +0400 Subject: [PATCH] Fixed object destruction --- Zend/zend_objects.c | 1 + Zend/zend_objects_API.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index 1f30477a59..2d14a6802c 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -30,6 +30,7 @@ ZEND_API void zend_object_std_init(zend_object *object, zend_class_entry *ce TSR { object->gc.refcount = 1; object->gc.u.v.type = IS_OBJECT; + object->gc.u.v.flags = 0; object->gc.u.v.buffer = 0; object->ce = ce; object->properties = NULL; diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 4480512f39..f617e92da6 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -147,6 +147,8 @@ ZEND_API void zend_objects_store_del(zend_object *object TSRMLS_DC) /* {{{ */ } if (object->gc.refcount == 0) { + zend_uint handle = object->handle; + //??? GC_REMOVE_ZOBJ_FROM_BUFFER(obj); if (object->handlers->free_obj) { zend_try { @@ -155,7 +157,7 @@ ZEND_API void zend_objects_store_del(zend_object *object TSRMLS_DC) /* {{{ */ failure = 1; } zend_end_try(); } - ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(object->handle); + ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(handle); } if (failure) { -- 2.40.0