summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2001-01-03 23:02:11 +0000
committerZeev Suraski <zeev@php.net>2001-01-03 23:02:11 +0000
commit8282d12be1777f06118ad730a5c06ebc003b7f07 (patch)
treef47eeaee3861172e6a0827977e4b710b3f42e4d2
parent6b1c31661b8a129b8614c7daf33961b9cdf59457 (diff)
downloadphp-git-8282d12be1777f06118ad730a5c06ebc003b7f07.tar.gz
Merge line number corruption bug fix
-rw-r--r--Zend/zend_language_scanner.l6
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index c71d05e779..efead6fc5a 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -362,7 +362,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;
@@ -380,6 +379,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;
}
@@ -483,7 +485,6 @@ zend_op_array *compile_string(zval *source_string, char *filename CLS_DC)
CG(ZFL)->BeginState(ST_IN_SCRIPTING);
#endif
compiler_result = zendparse(CLS_C);
- restore_lexical_state(&original_lex_state CLS_CC);
if (compiler_result==1) {
CG(active_op_array) = original_active_op_array;
@@ -495,6 +496,7 @@ zend_op_array *compile_string(zval *source_string, char *filename CLS_DC)
pass_two(op_array);
retval = op_array;
}
+ restore_lexical_state(&original_lex_state CLS_CC);
}
#ifdef ZTS
delete input_stream;