From 3661930f14305a67fe62e382eabbc47163ee346b Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Mon, 10 Feb 2003 10:04:08 +0000 Subject: [PATCH] Fix get_parent_class() --- Zend/zend_builtin_functions.c | 15 +++++---------- 1 file 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) { -- 2.50.1