From: Antony Dovgal Date: Wed, 20 Dec 2006 16:31:10 +0000 (+0000) Subject: MFH: fix #39903 (Notice message when executing __halt_compiler() more than once) X-Git-Tag: php-5.2.1RC2~137 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c348c293c84f66a2b985fe2de6871ecdff073d96;p=php MFH: fix #39903 (Notice message when executing __halt_compiler() more than once) --- diff --git a/NEWS b/NEWS index 7553cdf473..ff7b6a7ace 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,8 @@ PHP NEWS - Fixed the validate email filter so that the letter "v" can also be used in the user part of the email address. (Derick) +- Fixed bug #39903 (Notice message when executing __halt_compiler() more than + once). (Tony) - Fixed bug #39869 (safe_read does not initialize errno). (michiel at boland dot org, Dmitry) - Fixed bug #39850 (SplFileObject throws contradictory/wrong error messages diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 679021013a..b22da7a95f 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -162,7 +162,7 @@ top_statement: statement | function_declaration_statement { zend_do_early_binding(TSRMLS_C); } | class_declaration_statement { zend_do_early_binding(TSRMLS_C); } - | T_HALT_COMPILER '(' ')' ';' { REGISTER_MAIN_LONG_CONSTANT("__COMPILER_HALT_OFFSET__", zend_get_scanned_file_offset(TSRMLS_C), CONST_CS); YYACCEPT; } + | T_HALT_COMPILER '(' ')' ';' { zval c; if (zend_get_constant("__COMPILER_HALT_OFFSET__", sizeof("__COMPILER_HALT_OFFSET__") - 1, &c TSRMLS_CC)) { zval_dtor(&c); zend_error(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used once per request"); } else { REGISTER_MAIN_LONG_CONSTANT("__COMPILER_HALT_OFFSET__", zend_get_scanned_file_offset(TSRMLS_C), CONST_CS); } YYACCEPT; } ;