]> 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 799ce757287e838a7152df8ab62d72524285985d..7db6c15630b964d140f3e72e5ac80c72bf0b6a7f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,7 @@ PHP                                                                        NEWS
 - Fixed memory leak in extension loading when an error occurs on Windows.
   (Pierre)
 
+- Fixed bug #50174 (Incorrectly matched docComment). (Felipe)
 - Fixed bug #50087 (NSAPI performance improvements). (Uwe Schindler)
 - Fixed bug #50152 (ReflectionClass::hasProperty behaves like isset() not
   property_exists). (Felipe)
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 a30c2d24e65282bbc023d34c049b15bc5337a120..949798d7c302b41f9228e512e5b9aef8c5bfe6a3 100644 (file)
@@ -3658,6 +3658,12 @@ void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_D
                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;
+       }
 }
 /* }}} */