diff options
author | Marcus Boerger <helly@php.net> | 2004-07-25 17:25:44 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2004-07-25 17:25:44 +0000 |
commit | f5cf052225ff4bc5ba7fe2c8b9f0ffcd980cac6f (patch) | |
tree | a6280e2650b8a147f09e61feb7aaf393ef9790f4 /Zend/zend_objects_API.c | |
parent | ba5587132538294c0fd22853d50b84a22a453cb7 (diff) | |
download | php-git-f5cf052225ff4bc5ba7fe2c8b9f0ffcd980cac6f.tar.gz |
- Fix bug #29368 : The destructor is called when an exception is thrown from the constructor
Diffstat (limited to 'Zend/zend_objects_API.c')
-rw-r--r-- | Zend/zend_objects_API.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index a5788bd437..33225da4db 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -207,6 +207,15 @@ ZEND_API void zend_object_store_set_object(zval *zobject, void *object TSRMLS_DC } +/* Called when the ctor was terminated by an exception */ +ZEND_API void zend_object_store_ctor_failed(zval *zobject TSRMLS_DC) +{ + zend_object_handle handle = Z_OBJ_HANDLE_P(zobject); + + EG(objects_store).object_buckets[handle].destructor_called = 1; +} + + /* Proxy objects workings */ typedef struct _zend_proxy_object { zval *object; |