summaryrefslogtreecommitdiff
path: root/Zend/zend_objects_API.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_objects_API.c')
-rw-r--r--Zend/zend_objects_API.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c
index 3aedba1bda..53a0c3be23 100644
--- a/Zend/zend_objects_API.c
+++ b/Zend/zend_objects_API.c
@@ -152,18 +152,12 @@ ZEND_API void zend_objects_store_del(zend_object *object) /* {{{ */
if (EG(objects_store).object_buckets &&
IS_OBJ_VALID(EG(objects_store).object_buckets[object->handle])) {
if (GC_REFCOUNT(object) == 0) {
- int failure = 0;
-
if (!(GC_FLAGS(object) & IS_OBJ_DESTRUCTOR_CALLED)) {
GC_FLAGS(object) |= IS_OBJ_DESTRUCTOR_CALLED;
if (object->handlers->dtor_obj) {
GC_REFCOUNT(object)++;
- zend_try {
- object->handlers->dtor_obj(object);
- } zend_catch {
- failure = 1;
- } zend_end_try();
+ object->handlers->dtor_obj(object);
GC_REFCOUNT(object)--;
}
}
@@ -176,13 +170,9 @@ ZEND_API void zend_objects_store_del(zend_object *object) /* {{{ */
if (!(GC_FLAGS(object) & IS_OBJ_FREE_CALLED)) {
GC_FLAGS(object) |= IS_OBJ_FREE_CALLED;
if (object->handlers->free_obj) {
- zend_try {
- GC_REFCOUNT(object)++;
- object->handlers->free_obj(object);
- GC_REFCOUNT(object)--;
- } zend_catch {
- failure = 1;
- } zend_end_try();
+ GC_REFCOUNT(object)++;
+ object->handlers->free_obj(object);
+ GC_REFCOUNT(object)--;
}
}
ptr = ((char*)object) - object->handlers->offset;
@@ -190,10 +180,6 @@ ZEND_API void zend_objects_store_del(zend_object *object) /* {{{ */
efree(ptr);
ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(handle);
}
-
- if (failure) {
- zend_bailout();
- }
} else {
GC_REFCOUNT(object)--;
}