summaryrefslogtreecommitdiff
path: root/Zend/zend_objects_API.h
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2008-08-24 16:49:19 +0000
committerMarcus Boerger <helly@php.net>2008-08-24 16:49:19 +0000
commitce2f9bb0cf96fbb2aad317d8c9b6d947165ab02c (patch)
tree65d326eb144623936e3e94437de14b79b232340d /Zend/zend_objects_API.h
parent0edbdd76808e1f5ed862c4e09faf2115a7ed2988 (diff)
downloadphp-git-ce2f9bb0cf96fbb2aad317d8c9b6d947165ab02c.tar.gz
- MFH Fix issue with destruction of overloaded objects
Diffstat (limited to 'Zend/zend_objects_API.h')
-rw-r--r--Zend/zend_objects_API.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h
index f89ff24251..ed510f5eb9 100644
--- a/Zend/zend_objects_API.h
+++ b/Zend/zend_objects_API.h
@@ -37,6 +37,7 @@ typedef struct _zend_object_store_bucket {
zend_objects_store_dtor_t dtor;
zend_objects_free_object_storage_t free_storage;
zend_objects_store_clone_t clone;
+ const zend_object_handlers *handlers;
zend_uint refcount;
gc_root_buffer *buffered;
} obj;
@@ -66,7 +67,10 @@ ZEND_API zend_object_handle zend_objects_store_put(void *object, zend_objects_st
ZEND_API void zend_objects_store_add_ref(zval *object TSRMLS_DC);
ZEND_API void zend_objects_store_del_ref(zval *object TSRMLS_DC);
ZEND_API void zend_objects_store_add_ref_by_handle(zend_object_handle handle TSRMLS_DC);
-ZEND_API void zend_objects_store_del_ref_by_handle(zend_object_handle handle TSRMLS_DC);
+ZEND_API void zend_objects_store_del_ref_by_handle_ex(zend_object_handle handle, const zend_object_handlers *handlers TSRMLS_DC);
+static inline void zend_objects_store_del_ref_by_handle(zend_object_handle handle TSRMLS_DC) {
+ zend_objects_store_del_ref_by_handle_ex(handle, NULL TSRMLS_CC);
+}
ZEND_API zend_uint zend_objects_store_get_refcount(zval *object TSRMLS_DC);
ZEND_API zend_object_value zend_objects_store_clone_obj(zval *object TSRMLS_DC);
ZEND_API void *zend_object_store_get_object(const zval *object TSRMLS_DC);