summaryrefslogtreecommitdiff
path: root/Zend/zend_exceptions.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2005-06-27 18:13:13 +0000
committerStanislav Malyshev <stas@php.net>2005-06-27 18:13:13 +0000
commitd5a129600895cdd0cba0b8834cb9951863c6999b (patch)
treef662205cd0df0955321c56ffd519ad4070022d69 /Zend/zend_exceptions.c
parent46fcf913b29394d44a4918b224d427a19ba00a72 (diff)
downloadphp-git-d5a129600895cdd0cba0b8834cb9951863c6999b.tar.gz
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
Diffstat (limited to 'Zend/zend_exceptions.c')
-rw-r--r--Zend/zend_exceptions.c12
1 files changed, 11 insertions, 1 deletions
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;
}