]> granicus.if.org Git - php/commitdiff
debug_backtrace()
authorThies C. Arntzen <thies@php.net>
Wed, 28 Aug 2002 15:05:15 +0000 (15:05 +0000)
committerThies C. Arntzen <thies@php.net>
Wed, 28 Aug 2002 15:05:15 +0000 (15:05 +0000)
- make args passed to functions called vy call_user_function available again.

Zend/zend_builtin_functions.c
Zend/zend_execute_API.c

index b3be63433c6107ed5713680f5d67c718983f6fa8..95ba4efbf1b1355a7943bb68b843e7238d4a3003 100644 (file)
@@ -1280,8 +1280,6 @@ ZEND_FUNCTION(debug_backtrace)
        char *include_filename = NULL;
        zval *stack_frame;
        void **cur_arg_pos = EG(argument_stack).top_element;
-       int get_args;
-
 
        if (ZEND_NUM_ARGS()) {
                WRONG_PARAM_COUNT;
@@ -1312,11 +1310,6 @@ ZEND_FUNCTION(debug_backtrace)
                        /* try to fetch args only if an FCALL was just made - elsewise we're in the middle of a function
                         * and debug_baktrace() might have been called by the error_handler. in this case we don't 
                         * want to pop anything of the argument-stack */
-                       if ((ptr->opline->opcode == ZEND_DO_FCALL_BY_NAME) || (ptr->opline->opcode == ZEND_DO_FCALL)) {
-                               get_args = 1;
-                       } else {
-                               get_args = 0;
-                       }
                } else {
                        filename = NULL;
                }
@@ -1342,7 +1335,7 @@ ZEND_FUNCTION(debug_backtrace)
                                add_assoc_string_ex(stack_frame, "type", sizeof("type"), call_type, 1);
                        }
 
-                       if (get_args) {
+                       if ((! ptr->opline) || ((ptr->opline->opcode == ZEND_DO_FCALL_BY_NAME) || (ptr->opline->opcode == ZEND_DO_FCALL))) {
                                add_assoc_zval_ex(stack_frame, "args", sizeof("args"), debug_backtrace_get_args(&cur_arg_pos TSRMLS_CC));
                        }       
                } else {
index 7c2bc2659bc7dc2750f62b5db9cb418f18d78c0a..03a8304cd936849a66b33f927d073eee450cb69f 100644 (file)
@@ -477,6 +477,7 @@ int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *fun
        EX(object) = NULL;
        EX(Ts) = NULL;
        EX(op_array) = NULL;
+       EX(opline) = NULL;
        *retval_ptr_ptr = NULL;
 
        if (function_name->type==IS_ARRAY) { /* assume array($obj, $name) couple */