diff options
-rw-r--r-- | Zend/zend_builtin_functions.c | 14 | ||||
-rw-r--r-- | Zend/zend_builtin_functions.h | 2 | ||||
-rw-r--r-- | Zend/zend_default_classes.c | 2 | ||||
-rw-r--r-- | Zend/zend_exceptions.c | 2 |
4 files changed, 11 insertions, 9 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 3c4bce4e76..8aa08d55e1 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -1538,7 +1538,7 @@ ZEND_FUNCTION(debug_print_backtrace) /* }}} */ -ZEND_API void zend_fetch_debug_backtrace(zval *return_value TSRMLS_DC) +ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last TSRMLS_DC) { zend_execute_data *ptr; int lineno; @@ -1568,10 +1568,12 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value TSRMLS_DC) ptr = EG(current_execute_data); - /* skip debug_backtrace() */ - ptr = ptr->prev_execute_data; - cur_arg_pos -= 2; - frames_on_stack--; + /* skip debug_backtrace() */ + ptr = ptr->prev_execute_data; + if (skip_last) { + cur_arg_pos -= 2; + frames_on_stack--; + } array_init(return_value); @@ -1683,7 +1685,7 @@ ZEND_FUNCTION(debug_backtrace) ZEND_WRONG_PARAM_COUNT(); } - zend_fetch_debug_backtrace(return_value TSRMLS_CC); + zend_fetch_debug_backtrace(return_value, 1 TSRMLS_CC); } /* }}} */ diff --git a/Zend/zend_builtin_functions.h b/Zend/zend_builtin_functions.h index 3367ff3e66..755fad05e9 100644 --- a/Zend/zend_builtin_functions.h +++ b/Zend/zend_builtin_functions.h @@ -23,7 +23,7 @@ #define ZEND_BUILTIN_FUNCTIONS_H int zend_startup_builtin_functions(TSRMLS_D); -ZEND_API void zend_fetch_debug_backtrace(zval *return_value TSRMLS_DC); +ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last TSRMLS_DC); #endif /* ZEND_BUILTIN_FUNCTIONS_H */ diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c index 40b29e55f3..2e2ebaee96 100644 --- a/Zend/zend_default_classes.c +++ b/Zend/zend_default_classes.c @@ -41,7 +41,7 @@ static zend_object_value zend_default_exception_new(zend_class_entry *class_type ALLOC_ZVAL(trace); trace->is_ref = 0; trace->refcount = 0; - zend_fetch_debug_backtrace(trace TSRMLS_CC); + zend_fetch_debug_backtrace(trace, 0 TSRMLS_CC); zend_update_property_string(class_type, &obj, "file", sizeof("file")-1, zend_get_executed_filename(TSRMLS_C) TSRMLS_CC); zend_update_property_long(class_type, &obj, "line", sizeof("line")-1, zend_get_executed_lineno(TSRMLS_C) TSRMLS_CC); diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 40b29e55f3..2e2ebaee96 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -41,7 +41,7 @@ static zend_object_value zend_default_exception_new(zend_class_entry *class_type ALLOC_ZVAL(trace); trace->is_ref = 0; trace->refcount = 0; - zend_fetch_debug_backtrace(trace TSRMLS_CC); + zend_fetch_debug_backtrace(trace, 0 TSRMLS_CC); zend_update_property_string(class_type, &obj, "file", sizeof("file")-1, zend_get_executed_filename(TSRMLS_C) TSRMLS_CC); zend_update_property_long(class_type, &obj, "line", sizeof("line")-1, zend_get_executed_lineno(TSRMLS_C) TSRMLS_CC); |