From 6cc7ee265c495566c899382878ab5e7ddc3ca31e Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sun, 12 Jan 2003 13:56:51 +0000 Subject: [PATCH] add get_class_name handler --- Zend/zend_object_handlers.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index c86eac465c..5ee5826675 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -474,6 +474,24 @@ zend_class_entry *zend_std_object_get_class(zval *object TSRMLS_DC) return zobj->ce; } +int zend_std_object_get_class_name(zval *object, char **class_name, zend_uint *class_name_len, int parent TSRMLS_DC) +{ + zend_object *zobj; + zobj = Z_OBJ_P(object); + + if(parent) { + if(!zobj->ce->parent) { + return FAILURE; + } + *class_name = zobj->ce->parent->name; + *class_name_len = zobj->ce->parent->name_length; + } else { + *class_name = zobj->ce->name; + *class_name_len = zobj->ce->name_length; + } + return SUCCESS; +} + zend_object_handlers std_object_handlers = { zend_objects_store_add_ref, /* add_ref */ zend_objects_store_del_ref, /* del_ref */ @@ -493,7 +511,7 @@ zend_object_handlers std_object_handlers = { NULL, /* call_method */ zend_std_get_constructor, /* get_constructor */ zend_std_object_get_class, /* get_class_entry */ - NULL, /* get_class_name */ + zend_std_object_get_class_name, /* get_class_name */ zend_std_compare_objects /* compare_objects */ }; -- 2.50.1