summaryrefslogtreecommitdiff
path: root/Zend/zend_builtin_functions.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2003-02-10 10:04:08 +0000
committerZeev Suraski <zeev@php.net>2003-02-10 10:04:08 +0000
commit3661930f14305a67fe62e382eabbc47163ee346b (patch)
treededf401be9aaf9bef050d363ce039a87d75cc85c /Zend/zend_builtin_functions.c
parent029abf8c51ea69741538259e4202a6a51199cb87 (diff)
downloadphp-git-3661930f14305a67fe62e382eabbc47163ee346b.tar.gz
Fix get_parent_class()
Diffstat (limited to 'Zend/zend_builtin_functions.c')
-rw-r--r--Zend/zend_builtin_functions.c15
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) {