]> granicus.if.org Git - php/commitdiff
- Fix problem with object being destroyed more than once
authorAndi Gutmans <andi@php.net>
Sun, 23 May 2004 20:33:09 +0000 (20:33 +0000)
committerAndi Gutmans <andi@php.net>
Sun, 23 May 2004 20:33:09 +0000 (20:33 +0000)
Zend/zend_objects_API.c

index 69a33b525bbc2966eb47a30c9f18fc941179373a..a5788bd437c3be868d64cc1d102fe5271f0f4bce 100644 (file)
@@ -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;
                }
        }
 }