]> granicus.if.org Git - php/commitdiff
Revert "Fix include/eval with custom zend_execute"
authorNikita Popov <nikic@php.net>
Fri, 18 Apr 2014 15:19:46 +0000 (17:19 +0200)
committerNikita Popov <nikic@php.net>
Fri, 18 Apr 2014 15:19:46 +0000 (17:19 +0200)
This reverts commit ead8a6636d5f3fc01397addfcbd87b56e79f5b89.

Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index b17dbbf59fe28270deedea7282314ce016a6da33..aa8b2a5e839bcbd23f01b52321760b777c546faa 100644 (file)
@@ -1751,9 +1751,8 @@ 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 ((nested && EX(prev_execute_data)->opline->opcode == ZEND_INCLUDE_OR_EVAL) ||
+           EG(active_symbol_table) == &EG(symbol_table)) {
                zend_detach_symbol_table(TSRMLS_C);
        }
        
@@ -3901,8 +3900,6 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
                        zend_execute(new_op_array, return_value TSRMLS_CC);
                }
 
-               zend_attach_symbol_table(TSRMLS_C);
-
                EX(function_state).function = (zend_function *) EX(op_array);
 
                EG(opline_ptr) = &EX(opline);
index 4f4df9d3f20f5d039b7df3b7e94957c2d992320c..24e6ef1658ba93f4ad4415ab666f42e8ca4f1fef 100644 (file)
@@ -386,9 +386,8 @@ 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 ((nested && EX(prev_execute_data)->opline->opcode == ZEND_INCLUDE_OR_EVAL) ||
+           EG(active_symbol_table) == &EG(symbol_table)) {
                zend_detach_symbol_table(TSRMLS_C);
        }
 
@@ -2931,8 +2930,6 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
                        zend_execute(new_op_array, return_value TSRMLS_CC);
                }
 
-               zend_attach_symbol_table(TSRMLS_C);
-
                EX(function_state).function = (zend_function *) EX(op_array);
 
                EG(opline_ptr) = &EX(opline);
@@ -7881,8 +7878,6 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
                        zend_execute(new_op_array, return_value TSRMLS_CC);
                }
 
-               zend_attach_symbol_table(TSRMLS_C);
-
                EX(function_state).function = (zend_function *) EX(op_array);
 
                EG(opline_ptr) = &EX(opline);
@@ -12873,8 +12868,6 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
                        zend_execute(new_op_array, return_value TSRMLS_CC);
                }
 
-               zend_attach_symbol_table(TSRMLS_C);
-
                EX(function_state).function = (zend_function *) EX(op_array);
 
                EG(opline_ptr) = &EX(opline);
@@ -29395,8 +29388,6 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
                        zend_execute(new_op_array, return_value TSRMLS_CC);
                }
 
-               zend_attach_symbol_table(TSRMLS_C);
-
                EX(function_state).function = (zend_function *) EX(op_array);
 
                EG(opline_ptr) = &EX(opline);