diff options
author | Zeev Suraski <zeev@php.net> | 2001-01-03 23:02:11 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-01-03 23:02:11 +0000 |
commit | 8282d12be1777f06118ad730a5c06ebc003b7f07 (patch) | |
tree | f47eeaee3861172e6a0827977e4b710b3f42e4d2 | |
parent | 6b1c31661b8a129b8614c7daf33961b9cdf59457 (diff) | |
download | php-git-8282d12be1777f06118ad730a5c06ebc003b7f07.tar.gz |
Merge line number corruption bug fix
-rw-r--r-- | Zend/zend_language_scanner.l | 6 |
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; |