summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_language_scanner.l4
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 5153276089..56e4d27f21 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -354,7 +354,6 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type CLS
CG(active_op_array) = op_array;
compiler_result = zendparse(CLS_C);
zend_do_return(&retval_znode, 0 CLS_CC);
- restore_lexical_state(&original_lex_state CLS_CC);
CG(in_compilation) = original_in_compilation;
if (compiler_result==1) { /* parser error */
CG(unclean_shutdown) = 1;
@@ -372,6 +371,9 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type CLS
retval = NULL;
}
}
+ if (compilation_successful) {
+ restore_lexical_state(&original_lex_state CLS_CC);
+ }
return retval;
}