]> granicus.if.org Git - php/commitdiff
Removed hack (we don't need to modify class name).
authorDmitry Stogov <dmitry@php.net>
Tue, 18 Mar 2008 11:37:00 +0000 (11:37 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 18 Mar 2008 11:37:00 +0000 (11:37 +0000)
(the problem is covered by Zend/tests/ns_056.phpt)

Zend/zend_compile.c

index 2d885da9eb4dee6ee6b3f2a5c787b676a3c75b00..a3660a90fe3b2d5266e7faf76eec3ea7ca8bf9b1 100644 (file)
@@ -2278,14 +2278,10 @@ static zend_bool zend_do_perform_implementation_check(zend_function *fe, zend_fu
                        && strcasecmp(fe->common.arg_info[i].class_name, proto->common.arg_info[i].class_name)!=0) {
                        char *colon;
 
-                       if (fe->common.type == ZEND_USER_FUNCTION &&
-                           strchr(proto->common.arg_info[i].class_name, ':') == NULL &&
-                           (colon = zend_memrchr(fe->common.arg_info[i].class_name, ':', fe->common.arg_info[i].class_name_len)) != NULL &&
-                           strcasecmp(colon+1, proto->common.arg_info[i].class_name) == 0) {
-                               efree((char*)fe->common.arg_info[i].class_name);
-                               fe->common.arg_info[i].class_name = estrndup(proto->common.arg_info[i].class_name, proto->common.arg_info[i].class_name_len);
-                               fe->common.arg_info[i].class_name_len = proto->common.arg_info[i].class_name_len;
-                       } else {
+                       if (fe->common.type != ZEND_USER_FUNCTION ||
+                           strchr(proto->common.arg_info[i].class_name, ':') != NULL ||
+                           (colon = zend_memrchr(fe->common.arg_info[i].class_name, ':', fe->common.arg_info[i].class_name_len)) == NULL ||
+                           strcasecmp(colon+1, proto->common.arg_info[i].class_name) != 0) {
                                return 0;
                        }
                }