diff options
author | Felipe Pena <felipe@php.net> | 2010-06-12 15:30:21 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2010-06-12 15:30:21 +0000 |
commit | 2c2fcc2217ecfc21ee7a4c9eb64038ed975ed0e8 (patch) | |
tree | e4fc8e1fab58a61f197d4da13308491f8c040f17 | |
parent | becc2bb67109443e16cd4b9c848420aa9a4a6949 (diff) | |
download | php-git-2c2fcc2217ecfc21ee7a4c9eb64038ed975ed0e8.tar.gz |
- Fixed bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+)
-rw-r--r-- | Zend/tests/bug52051.phpt | 27 | ||||
-rw-r--r-- | Zend/zend_object_handlers.c | 2 |
2 files changed, 28 insertions, 1 deletions
diff --git a/Zend/tests/bug52051.phpt b/Zend/tests/bug52051.phpt new file mode 100644 index 0000000000..e8a4f49e3c --- /dev/null +++ b/Zend/tests/bug52051.phpt @@ -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 diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index ef1ee3dad9..9500933a35 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -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); |