com php-src: Fixed object destruction: Zend/zend_objects.c Zend/zend_objects_API.c
| From: | Dmitry Stogov | Date: | Tue, 18 Feb 2014 18:35:54 +0000 |
| Subject: | com php-src: Fixed object destruction: Zend/zend_objects.c Zend/zend_objects_API.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-78081@lists.php.net to get a copy of this message | ||
Commit: 110e01a21eef8827a0c449f23139e25a9e32e181
Author: Dmitry Stogov <dmitry@zend.com> Tue, 18 Feb 2014 22:35:54 +0400
Parents: bb58ea348ca2c49a00417c75cc6cd64b5734a885
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=110e01a21eef8827a0c449f23139e25a9e32e181
Log:
Fixed object destruction
Changed paths:
M Zend/zend_objects.c
M Zend/zend_objects_API.c
Diff:
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index 1f30477...2d14a68 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 4480512..f617e92 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) {