]> granicus.if.org Git - php/commitdiff
- Fixed bug #50174 (Incorrectly matched docComment)
authorFelipe Pena <felipe@php.net>
Sat, 14 Nov 2009 19:17:22 +0000 (19:17 +0000)
committerFelipe Pena <felipe@php.net>
Sat, 14 Nov 2009 19:17:22 +0000 (19:17 +0000)
NEWS
Zend/tests/bug50174.phpt [new file with mode: 0644]
Zend/zend_compile.c

diff --git a/NEWS b/NEWS
index 5b17e77edb34c43f146716cabb1cbb5c78e0da10..103417a17d7dbe43cad5c4aa65f85f3c731be223 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? Nov 2009, PHP 5.2.12RC2
+- Fixed bug #50174 (Incorrectly matched docComment). (Felipe)
 
 12 Nov 2009, PHP 5.2.12RC1
 - Updated timezone database to version 2009.18 (2009r). (Derick)
diff --git a/Zend/tests/bug50174.phpt b/Zend/tests/bug50174.phpt
new file mode 100644 (file)
index 0000000..6ed5733
--- /dev/null
@@ -0,0 +1,31 @@
+--TEST--
+Bug #50174 (Incorrectly matched docComment)
+--FILE--
+<?php
+
+class TestClass
+{
+       /** const comment */
+       const C = 0;
+
+       function x() {}
+}
+
+$rm = new ReflectionMethod('TestClass', 'x');
+var_dump($rm->getDocComment());
+
+class TestClass2
+{
+       /** const comment */
+       const C = 0;
+
+       public $x;
+}
+
+$rp = new ReflectionProperty('TestClass2', 'x');
+var_dump($rp->getDocComment());
+
+?>
+--EXPECT--
+bool(false)
+bool(false)
index 1e3e205dabb7503cadb76be15de88442019ae070..3c34743619fa2a21568566d85cd1ab5028310c93 100644 (file)
@@ -3103,6 +3103,12 @@ void zend_do_declare_class_constant(znode *var_name, znode *value TSRMLS_DC)
                zend_error(E_COMPILE_ERROR, "Cannot redefine class constant %s::%s", CG(active_class_entry)->name, var_name->u.constant.value.str.val);
        }
        FREE_PNODE(var_name);
+       
+       if (CG(doc_comment)) {
+               efree(CG(doc_comment));
+               CG(doc_comment) = NULL;
+               CG(doc_comment_len) = 0;
+       }
 }