diff options
| author | Zeev Suraski <zeev@php.net> | 2003-02-10 10:04:08 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 2003-02-10 10:04:08 +0000 |
| commit | 3661930f14305a67fe62e382eabbc47163ee346b (patch) | |
| tree | dedf401be9aaf9bef050d363ce039a87d75cc85c /Zend/zend_builtin_functions.c | |
| parent | 029abf8c51ea69741538259e4202a6a51199cb87 (diff) | |
| download | php-git-3661930f14305a67fe62e382eabbc47163ee346b.tar.gz | |
Fix get_parent_class()
Diffstat (limited to 'Zend/zend_builtin_functions.c')
| -rw-r--r-- | Zend/zend_builtin_functions.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 0a6568556a..571b591fd6 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -559,17 +559,12 @@ ZEND_FUNCTION(get_parent_class) char *name; zend_uint name_length; - /* first try asking handler for parent class name */ - if (Z_OBJ_HT_PP(arg)->get_class_name != NULL && - Z_OBJ_HT_PP(arg)->get_class_name(*arg, &name, &name_length, 1 TSRMLS_CC) == SUCCESS) { - name = ce->name; - name_length = ce->name_length; - + if (Z_OBJ_HT_PP(arg)->get_class_name + && Z_OBJ_HT_PP(arg)->get_class_name(*arg, &name, &name_length, 1 TSRMLS_CC) == SUCCESS) { RETURN_STRINGL(name, name_length, 1); - } - /* then try getting the class entry - if successfull, will fall through to standard ce handling */ - if (!Z_OBJ_HT_PP(arg)->get_class_entry || !(ce = zend_get_class_entry(*arg))) { + } else if (Z_OBJ_HT_PP(arg)->get_class_entry && (ce = zend_get_class_entry(*arg))) { + RETURN_STRINGL(ce->name, ce->name_length, 1); + } else { RETURN_FALSE; } } else if (Z_TYPE_PP(arg) == IS_STRING) { |
