]> granicus.if.org Git - php/commitdiff
Improved fix for bug #41633 (self:: doesn't work for constants) to support function...
authorDmitry Stogov <dmitry@php.net>
Fri, 27 Jul 2007 16:29:12 +0000 (16:29 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 27 Jul 2007 16:29:12 +0000 (16:29 +0000)
Zend/tests/bug41633_4.phpt [new file with mode: 0755]
Zend/zend_constants.c

diff --git a/Zend/tests/bug41633_4.phpt b/Zend/tests/bug41633_4.phpt
new file mode 100755 (executable)
index 0000000..3507f6a
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+Bug #41633.4 (self:: doesn't work for constants)
+--FILE--
+<?php
+class Foo {
+       const A = self::B;
+       const B = "ok";
+}
+var_dump(defined("Foo::A"));
+?>
+--EXPECT--
+bool(true)
index ab0c1c5122df8ba8bd1e9e05a2c0afe9961ba6c4..fba024ac44d12455794679c93ea3adbe0c02b4d5 100644 (file)
@@ -271,7 +271,7 @@ ZEND_API int zend_get_constant_ex(char *name, uint name_len, zval *result, zend_
                efree(class_name);
 
                if (retval) {
-                       zval_update_constant(ret_constant, (void*)1 TSRMLS_CC);
+                       zval_update_constant_ex(ret_constant, (void*)1, *ce TSRMLS_CC);
                        *result = **ret_constant;
                        zval_copy_ctor(result);
                }