diff options
Diffstat (limited to 'Zend/zend_objects_API.c')
-rw-r--r-- | Zend/zend_objects_API.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 69a33b525b..a5788bd437 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -48,10 +48,12 @@ ZEND_API void zend_objects_store_call_destructors(zend_objects_store *objects TS if (objects->object_buckets[i].valid) { struct _store_object *obj = &objects->object_buckets[i].bucket.obj; - if (obj->dtor && !objects->object_buckets[i].destructor_called) { - obj->dtor(obj->object, i TSRMLS_CC); + if (!objects->object_buckets[i].destructor_called) { + objects->object_buckets[i].destructor_called = 1; + if (obj->dtor) { + obj->dtor(obj->object, i TSRMLS_CC); + } } - objects->object_buckets[i].destructor_called = 1; } } } |