summaryrefslogtreecommitdiff
path: root/Zend/zend_gc.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2008-08-24 16:45:50 +0000
committerMarcus Boerger <helly@php.net>2008-08-24 16:45:50 +0000
commit3110bffd16cd11ef8467ee15010cc840044ac883 (patch)
tree32deeba5fc614329afbb9464ed7c24ec005a41ca /Zend/zend_gc.c
parentcacb2e0303980f5344f26a072ae6f4494800e5e7 (diff)
downloadphp-git-3110bffd16cd11ef8467ee15010cc840044ac883.tar.gz
- Fix issue with destruction of overloaded objects
# The issue is that we assume default object handlers when calling method # __destruct(). Now the default handlers might not be compatible with the # correct handlers which would result in crashes or they simply do cannot # support everything the object was supposed to do. The latter case will be # demonstrated in ext/spl/tests/iterator_068.phpt.
Diffstat (limited to 'Zend/zend_gc.c')
-rw-r--r--Zend/zend_gc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c
index 76a490b8ed..7892c6d027 100644
--- a/Zend/zend_gc.c
+++ b/Zend/zend_gc.c
@@ -571,7 +571,7 @@ ZEND_API int gc_collect_cycles(TSRMLS_D)
EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.refcount <= 0) {
EG(objects_store).object_buckets[Z_OBJ_HANDLE(p->z)].bucket.obj.refcount = 1;
Z_TYPE(p->z) = IS_NULL;
- zend_objects_store_del_ref_by_handle(Z_OBJ_HANDLE(p->z) TSRMLS_CC);
+ zend_objects_store_del_ref_by_handle_ex(Z_OBJ_HANDLE(p->z), Z_OBJ_HT(p->z) TSRMLS_CC);
}
} else if (Z_TYPE(p->z) == IS_ARRAY) {
Z_TYPE(p->z) = IS_NULL;