summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>1999-07-28 17:59:55 +0000
committerAndi Gutmans <andi@php.net>1999-07-28 17:59:55 +0000
commit741ca1671164f51d330f3518ea14591ba8feff8d (patch)
tree52306459c2ad9f8cf28b5cc8547cc36b8812104e /Zend/zend_execute_API.c
parenta7af382874a2b4fcb7dabf01b400bd06a162fc74 (diff)
downloadphp-git-741ca1671164f51d330f3518ea14591ba8feff8d.tar.gz
- Fixed various inheritance problems & Andrey's leak
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index a5b94889c9..586249a345 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -91,6 +91,7 @@ void init_executor(CLS_D ELS_DC)
EG(error_zval).EA.is_ref=0;
EG(error_zval).EA.locks = 0;
EG(error_zval_ptr)=&EG(error_zval);
+ EG(destroying_function_symbol_table) = 0;
zend_ptr_stack_init(&EG(arg_types_stack));
zend_stack_init(&EG(overloaded_objects_stack));
/* destroys stack frame, therefore makes core dumps worthless */
@@ -215,7 +216,13 @@ ZEND_API int zval_ptr_dtor(zval **zval_ptr)
safe_free_zval_ptr(*zval_ptr);
}
if (locked) {
- return 0; /* don't kill the container bucket */
+ ELS_FETCH();
+
+ if (EG(destroying_function_symbol_table)) {
+ return 1;
+ } else {
+ return 0; /* don't kill the container bucket */
+ }
} else {
return 1;
}