]> granicus.if.org Git - php/commitdiff
- Fixed bug #52051 (handling of case sensitivity of old-style constructors changed...
authorFelipe Pena <felipe@php.net>
Sat, 12 Jun 2010 15:30:21 +0000 (15:30 +0000)
committerFelipe Pena <felipe@php.net>
Sat, 12 Jun 2010 15:30:21 +0000 (15:30 +0000)
Zend/tests/bug52051.phpt [new file with mode: 0644]
Zend/zend_object_handlers.c

diff --git a/Zend/tests/bug52051.phpt b/Zend/tests/bug52051.phpt
new file mode 100644 (file)
index 0000000..e8a4f49
--- /dev/null
@@ -0,0 +1,27 @@
+--TEST--
+Bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+)
+--FILE--
+<?php
+
+class AA {
+    function AA() { echo "foo\n"; }
+}
+class bb extends AA {}
+class CC extends bb {
+   function CC() { parent::bb(); }
+}
+new CC();
+
+class A {
+    function A() { echo "bar\n"; }
+}
+class B extends A {}
+class C extends B {
+   function C() { parent::B(); }
+}
+new C();
+
+?>
+--EXPECT--
+foo
+bar
index ef1ee3dad9ad22e42c2084bb6d909ed4fe4ffbb1..9500933a35858306c5bed81bd98e73569df762c6 100644 (file)
@@ -1096,7 +1096,7 @@ ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, char *f
                /* Only change the method to the constructor if the constructor isn't called __construct
                 * we check for __ so we can be binary safe for lowering, we should use ZEND_CONSTRUCTOR_FUNC_NAME
                 */
-               if (!memcmp(lc_class_name, function_name_strval, function_name_strlen) && memcmp(ce->constructor->common.function_name, "__", sizeof("__") - 1)) {
+               if (!memcmp(lc_class_name, lc_function_name, function_name_strlen) && memcmp(ce->constructor->common.function_name, "__", sizeof("__") - 1)) {
                        fbc = ce->constructor;
                }
                efree(lc_class_name);