summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2003-01-05 16:09:59 +0000
committerZeev Suraski <zeev@php.net>2003-01-05 16:09:59 +0000
commitcf05f34c660526ea202c76e5f7563107d1a15266 (patch)
tree72ac030d54b461a736130b879aba9d9d5aae3481
parentb5d97e5ddb31903c9104b5d3b2e5047f32ff3bd4 (diff)
downloadphp-git-cf05f34c660526ea202c76e5f7563107d1a15266.tar.gz
MFZE1 - lineno fix
-rw-r--r--Zend/zend_compile.c1
-rw-r--r--Zend/zend_globals.h1
-rw-r--r--Zend/zend_language_scanner.l5
3 files changed, 5 insertions, 2 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 9b6c08f52f..bd93b438d6 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -79,6 +79,7 @@ void zend_init_compiler_data_structures(TSRMLS_D)
zend_stack_init(&CG(list_stack));
CG(handle_op_arrays) = 1;
CG(in_compilation) = 0;
+ CG(start_lineno) = 0;
init_compiler_declarables(TSRMLS_C);
CG(throw_list) = NULL;
zend_register_auto_global("GLOBALS", sizeof("GLOBALS")-1 TSRMLS_CC);
diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h
index d9a2539466..a8f4fbdf40 100644
--- a/Zend/zend_globals.h
+++ b/Zend/zend_globals.h
@@ -119,6 +119,7 @@ struct _zend_compiler_globals {
int interactive;
+ zend_uint start_lineno;
zend_bool in_clone_method;
zend_bool increment_lineno;
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 51367b29ee..aabe7b00a2 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -248,8 +248,9 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
zend_set_compiled_filename(file_path TSRMLS_CC);
- if (CG(zend_lineno) < 0) { /* position is (n_lines * -1), position was changed by an external app */
- CG(zend_lineno) = CG(zend_lineno) * -1;
+ if (CG(start_lineno)) {
+ CG(zend_lineno) = CG(start_lineno);
+ CG(start_lineno) = 0;
} else {
CG(zend_lineno) = 1;
}