From 8912a50bf47e70a16fc45a6cd085fc1b3e4d88a5 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Mon, 1 Mar 2004 19:45:07 +0000 Subject: [PATCH] - Fix crash in destructors(). You can't throw an exception in destructors as there is no guaranteed time when the destructor will be called. --- Zend/zend_objects.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index d29795e3aa..bc4ac86f34 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -68,7 +68,15 @@ ZEND_API void zend_objects_destroy_object(zend_object *object, zend_object_handl zobj.value.obj.handlers = &std_object_handlers; INIT_PZVAL(obj); + if (EG(exception)) { + zval_ptr_dtor(&EG(exception)); + EG(exception) = NULL; + } zend_call_method_with_0_params(&obj, object->ce, NULL, "__destruct", NULL); + if (EG(exception)) { + zval_ptr_dtor(&EG(exception)); + EG(exception) = NULL; + } } } -- 2.50.1