diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2014-03-27 00:04:50 +0400 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2014-03-27 00:04:50 +0400 |
| commit | f53c31265f411d9d8af5b745095aaf4507d046fe (patch) | |
| tree | 3ee5684cd01084f70e7694438faadb5759a7a522 | |
| parent | f3272bf7acdd10ad0cea048c056d75ef39ce3f51 (diff) | |
| download | php-git-f53c31265f411d9d8af5b745095aaf4507d046fe.tar.gz | |
Fixed symbol table detaching
| -rw-r--r-- | Zend/zend_execute_API.c | 8 |
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)); + } } } /* }}} */ |
