From d5a129600895cdd0cba0b8834cb9951863c6999b Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Mon, 27 Jun 2005 18:13:13 +0000 Subject: fix various "Class entry requested for an object without PHP class" messages when working with non-PHP objects. # Using Z_OBJCE(object)->name is usually bad idea unless you know it's # a pure PHP object --- Zend/zend_exceptions.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'Zend/zend_exceptions.c') diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 3479d4e732..f428c3cb74 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -359,10 +359,20 @@ static int _build_trace_args(zval **arg, int num_args, va_list args, zend_hash_k TRACE_APPEND_STR("Array, "); break; case IS_OBJECT: { + char *class_name; + zend_uint class_name_len; + int dup; TSRMLS_FETCH(); TRACE_APPEND_STR("Object("); - TRACE_APPEND_STRL(Z_OBJCE_PP(arg)->name, strlen(Z_OBJCE_PP(arg)->name)); + + dup = zend_get_object_classname(*arg, &class_name, &class_name_len TSRMLS_CC); + + TRACE_APPEND_STRL(class_name, class_name_len); + if(!dup) { + efree(class_name); + } + TRACE_APPEND_STR("), "); break; } -- cgit v1.2.1