diff options
author | Dmitry Stogov <dmitry@php.net> | 2008-03-18 11:37:00 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2008-03-18 11:37:00 +0000 |
commit | 8b01532f64cfeb88270b1a8b13c52dd76aa3d999 (patch) | |
tree | 253ed3e361904e635fa6ab4509bc319e2f5de746 | |
parent | 8c885b89130e3549297316c0769b27d9d3657902 (diff) | |
download | php-git-8b01532f64cfeb88270b1a8b13c52dd76aa3d999.tar.gz |
Removed hack (we don't need to modify class name).
(the problem is covered by Zend/tests/ns_056.phpt)
-rw-r--r-- | Zend/zend_compile.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 2d885da9eb..a3660a90fe 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -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; } } |