summaryrefslogtreecommitdiff
path: root/Zend/zend_objects_API.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2004-03-11 13:27:18 +0000
committerAndi Gutmans <andi@php.net>2004-03-11 13:27:18 +0000
commitaa472500e173653bf5704d5e311da5c055f2ee7c (patch)
tree9adb4dd76731f9c2eebd3e111a7a810bb4808836 /Zend/zend_objects_API.c
parent68f1108b53eddf068f22f15562dea365c85aa6ec (diff)
downloadphp-git-aa472500e173653bf5704d5e311da5c055f2ee7c.tar.gz
- Attempt to fix bug #27535
Diffstat (limited to 'Zend/zend_objects_API.c')
-rw-r--r--Zend/zend_objects_API.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c
index 8e4f3a4a10..d372d3d960 100644
--- a/Zend/zend_objects_API.c
+++ b/Zend/zend_objects_API.c
@@ -65,6 +65,7 @@ ZEND_API void zend_objects_store_free_object_storage(zend_objects_store *objects
if (objects->object_buckets[i].valid) {
struct _store_object *obj = &objects->object_buckets[i].bucket.obj;
+ objects->object_buckets[i].valid = 0;
if (obj->free_storage) {
obj->free_storage(obj->object TSRMLS_CC);
}
@@ -140,7 +141,7 @@ ZEND_API void zend_objects_store_del_ref(zval *zobject TSRMLS_DC)
}
}
if (obj->refcount == 1) {
- if (obj->free_storage) {
+ if (obj->free_storage && EG(objects_store).object_buckets[handle].valid) {
obj->free_storage(obj->object TSRMLS_CC);
}
ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST();