diff options
Diffstat (limited to 'Zend/zend_exceptions.c')
-rw-r--r-- | Zend/zend_exceptions.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index ee638b8c8a..fb858f0f52 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -485,21 +485,17 @@ static int _build_trace_args(zval **arg TSRMLS_DC, int num_args, va_list args, z zstr class_name; zend_uint class_name_len; int dup; + zval tmp; TRACE_APPEND_STR("Object("); - dup = zend_get_object_classname(*arg, &class_name, &class_name_len TSRMLS_CC); + dup = zend_get_object_classname(*arg, &class_name, &class_name_len TSRMLS_CC); - if (UG(unicode)) { - zval tmp; - - ZVAL_UNICODEL(&tmp, class_name.u, class_name_len, 1); - convert_to_string_with_converter(&tmp, ZEND_U_CONVERTER(UG(output_encoding_conv))); - TRACE_APPEND_STRL(Z_STRVAL(tmp), Z_STRLEN(tmp)); - zval_dtor(&tmp); - } else { - TRACE_APPEND_STRL(class_name.s, class_name_len); - } + ZVAL_UNICODEL(&tmp, class_name.u, class_name_len, 1); + convert_to_string_with_converter(&tmp, ZEND_U_CONVERTER(UG(output_encoding_conv))); + TRACE_APPEND_STRL(Z_STRVAL(tmp), Z_STRLEN(tmp)); + zval_dtor(&tmp); + if(!dup) { efree(class_name.v); } |