com php-src: Fix zend_eval_string (and as such as sert + dom tests): Zend/zend_execute_API.c Zend/zend_vm_def.h Zend/zend_vm_execute.h
| From: | Dmitry Stogov | Date: | Fri, 18 Apr 2014 12:35:59 +0000 |
| Subject: | com php-src: Fix zend_eval_string (and as such as sert + dom tests): Zend/zend_execute_API.c Zend/zend_vm_def.h Zend/zend_vm_execute.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-77347@lists.php.net to get a copy of this message | ||
Commit: 64cc5a72e2695962676c6fe4a96779d554d4ab24
Author: Nikita Popov <nikic@php.net> Fri, 18 Apr 2014 14:35:59 +0200
Parents: ead8a6636d5f3fc01397addfcbd87b56e79f5b89
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=64cc5a72e2695962676c6fe4a96779d554d4ab24
Log:
Fix zend_eval_string (and as such assert + dom tests)
Changed paths:
M Zend/zend_execute_API.c
M Zend/zend_vm_def.h
M Zend/zend_vm_execute.h
Diff:
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 0c6861c..7a5bd05 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -1181,6 +1181,10 @@ ZEND_API int zend_eval_stringl(char *str, int str_len, zval *retval_ptr, char
*s
}
}
+ if (EG(current_execute_data)) {
+ zend_attach_symbol_table(TSRMLS_C);
+ }
+
EG(no_extensions)=0;
EG(opline_ptr) = original_opline_ptr;
EG(active_op_array) = original_active_op_array;
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index b17dbbf..ef4e541 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1751,9 +1751,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
zend_bool nested = EX(nested);
zend_op_array *op_array = EX(op_array);
- if ((EX(prev_execute_data) && EX(prev_execute_data)->opline
- && EX(prev_execute_data)->opline->opcode == ZEND_INCLUDE_OR_EVAL)
- || EG(active_symbol_table) == &EG(symbol_table)) {
+ if (EX(symbol_table) != NULL) {
zend_detach_symbol_table(TSRMLS_C);
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 4f4df9d..addc89c 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -386,9 +386,7 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
zend_bool nested = EX(nested);
zend_op_array *op_array = EX(op_array);
- if ((EX(prev_execute_data) && EX(prev_execute_data)->opline
- && EX(prev_execute_data)->opline->opcode == ZEND_INCLUDE_OR_EVAL)
- || EG(active_symbol_table) == &EG(symbol_table)) {
+ if (EX(symbol_table) != NULL) {
zend_detach_symbol_table(TSRMLS_C);
}