]> granicus.if.org Git - php/commitdiff
- Fixed bug #54804 (__halt_compiler and imported namespaces) (Pierrick)
authorFelipe Pena <felipe@php.net>
Thu, 19 May 2011 23:20:47 +0000 (23:20 +0000)
committerFelipe Pena <felipe@php.net>
Thu, 19 May 2011 23:20:47 +0000 (23:20 +0000)
NEWS
Zend/tests/bug54804.inc [new file with mode: 0644]
Zend/tests/bug54804.phpt [new file with mode: 0644]
Zend/zend_compile.c

diff --git a/NEWS b/NEWS
index 236fbc35121ef11e223e837c28df1a91c9370453..cfec4639abaf44640dc601e6d0d66666d79b14fe 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,8 @@ PHP                                                                        NEWS
 - Upgraded bundled PCRE to version 8.12. (Scott)
 
 - Zend Engine:
+  . Fixed bug #54804 (__halt_compiler and imported namespaces).
+    (Pierrick, Felipe)
   . Fixed bug #54585 (track_errors causes segfault). (Dmitry)
   . Fixed bug #54423 (classes from dl()'ed extensions are not destroyed). 
     (Tony, Dmitry)
diff --git a/Zend/tests/bug54804.inc b/Zend/tests/bug54804.inc
new file mode 100644 (file)
index 0000000..74b7a16
--- /dev/null
@@ -0,0 +1,3 @@
+<?php
+namespace b\c {}
+namespace b\d {}
diff --git a/Zend/tests/bug54804.phpt b/Zend/tests/bug54804.phpt
new file mode 100644 (file)
index 0000000..c68e946
--- /dev/null
@@ -0,0 +1,11 @@
+--TEST--
+Bug #54804 (__halt_compiler and imported namespaces)
+--FILE--
+<?php
+namespace a;
+require __DIR__ . '/bug54804.inc';
+echo 'DONE';
+__halt_compiler();
+?>
+--EXPECT--
+DONE
index 42a890ef857c8acf751ec84ab9af83fb9833829e..d6ac7e3e4dccfd0ae43b483d3a558755f3c1b0f4 100644 (file)
@@ -3749,6 +3749,10 @@ void zend_do_halt_compiler_register(TSRMLS_D) /* {{{ */
        zend_mangle_property_name(&name, &len, haltoff, sizeof(haltoff) - 1, cfilename, clen, 0);
        zend_register_long_constant(name, len+1, zend_get_scanned_file_offset(TSRMLS_C), CONST_CS, 0 TSRMLS_CC);
        pefree(name, 0);
+       
+       if (CG(in_namespace)) {
+               zend_do_end_namespace(TSRMLS_C);
+       }
 }
 /* }}} */