diff options
| author | Marcus Boerger <helly@php.net> | 2008-08-24 16:45:50 +0000 |
|---|---|---|
| committer | Marcus Boerger <helly@php.net> | 2008-08-24 16:45:50 +0000 |
| commit | 3110bffd16cd11ef8467ee15010cc840044ac883 (patch) | |
| tree | 32deeba5fc614329afbb9464ed7c24ec005a41ca /Zend/zend_gc.c | |
| parent | cacb2e0303980f5344f26a072ae6f4494800e5e7 (diff) | |
| download | php-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.c | 2 |
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; |
