summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-03-27 00:04:50 +0400
committerDmitry Stogov <dmitry@zend.com>2014-03-27 00:04:50 +0400
commitf53c31265f411d9d8af5b745095aaf4507d046fe (patch)
tree3ee5684cd01084f70e7694438faadb5759a7a522
parentf3272bf7acdd10ad0cea048c056d75ef39ce3f51 (diff)
downloadphp-git-f53c31265f411d9d8af5b745095aaf4507d046fe.tar.gz
Fixed symbol table detaching
-rw-r--r--Zend/zend_execute_API.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 0980517935..b3dfbf8e06 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -1753,8 +1753,12 @@ ZEND_API void zend_detach_symbol_table(TSRMLS_D) /* {{{ */
/* copy real values from CV slots into symbol table */
for (i = 0; i < op_array->last_var; i++) {
- zend_hash_update(ht, op_array->vars[i], EX_VAR_NUM(i));
- ZVAL_UNDEF(EX_VAR_NUM(i));
+ if (Z_TYPE_P(EX_VAR_NUM(i)) == IS_UNDEF) {
+ zend_hash_del(ht, op_array->vars[i]);
+ } else {
+ zend_hash_update(ht, op_array->vars[i], EX_VAR_NUM(i));
+ ZVAL_UNDEF(EX_VAR_NUM(i));
+ }
}
}
/* }}} */