]> granicus.if.org Git - php/commitdiff
Mark objects that are going to be deleted
authorDmitry Stogov <dmitry@zend.com>
Wed, 19 Mar 2014 19:50:50 +0000 (23:50 +0400)
committerDmitry Stogov <dmitry@zend.com>
Wed, 19 Mar 2014 19:50:50 +0000 (23:50 +0400)
Zend/zend_objects_API.c

index 77b7ee103a364b364945242b0c163110c0d1cca9..f0db534cc3760ca210da7a223217a6f07c164e26 100644 (file)
@@ -120,6 +120,7 @@ ZEND_API void zend_objects_store_free(zend_object *object TSRMLS_DC) /* {{{ */
 {
        int handle = object->handle;
 
+       EG(objects_store).object_buckets[handle] = SET_INVALID(object);
        if (object->handlers->free_obj) {
                object->handlers->free_obj(object TSRMLS_CC);
        }
@@ -155,6 +156,7 @@ ZEND_API void zend_objects_store_del(zend_object *object TSRMLS_DC) /* {{{ */
                        if (object->gc.refcount == 0) {
                                zend_uint handle = object->handle;
 
+                               EG(objects_store).object_buckets[handle] = SET_INVALID(object);
                                if (object->handlers->free_obj) {
                                        zend_try {
                                                object->handlers->free_obj(object TSRMLS_CC);