|
|
|
@ -81,7 +81,7 @@ void zend_exception_restore(TSRMLS_D) /* {{{ */ |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|
|
|
|
void zend_throw_exception_internal(zval *exception TSRMLS_DC) /* {{{ */ |
|
|
|
ZEND_API void zend_throw_exception_internal(zval *exception TSRMLS_DC) /* {{{ */ |
|
|
|
{ |
|
|
|
#ifdef HAVE_DTRACE |
|
|
|
if (DTRACE_EXCEPTION_THROWN_ENABLED()) { |
|
|
|
@ -580,6 +580,7 @@ ZEND_METHOD(exception, __toString) |
|
|
|
zend_call_function(&fci, NULL TSRMLS_CC); |
|
|
|
|
|
|
|
if (Z_TYPE_P(trace) != IS_STRING) { |
|
|
|
zval_ptr_dtor(&trace); |
|
|
|
trace = NULL; |
|
|
|
} |
|
|
|
|
|
|
|
@ -600,6 +601,11 @@ ZEND_METHOD(exception, __toString) |
|
|
|
zval_dtor(&line); |
|
|
|
|
|
|
|
exception = zend_read_property(default_exception_ce, exception, "previous", sizeof("previous")-1, 0 TSRMLS_CC); |
|
|
|
|
|
|
|
if (trace) { |
|
|
|
zval_ptr_dtor(&trace); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
zval_dtor(&fname); |
|
|
|
|
|
|
|
@ -607,10 +613,6 @@ ZEND_METHOD(exception, __toString) |
|
|
|
* the result in uncaught exception handlers without memleaks. */ |
|
|
|
zend_update_property_string(default_exception_ce, getThis(), "string", sizeof("string")-1, str TSRMLS_CC); |
|
|
|
|
|
|
|
if (trace) { |
|
|
|
zval_ptr_dtor(&trace); |
|
|
|
} |
|
|
|
|
|
|
|
RETURN_STRINGL(str, len, 0); |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|