summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThies C. Arntzen <thies@php.net>2002-08-24 09:05:44 +0000
committerThies C. Arntzen <thies@php.net>2002-08-24 09:05:44 +0000
commit800c67a166e8e82cd91b2107c3b53d21cf391fd1 (patch)
treeda76a31f0f5b3fb16f857cf855c904c6b267033c
parente4f90530615ca3f467668b2da560a5dea5662772 (diff)
downloadphp-git-800c67a166e8e82cd91b2107c3b53d21cf391fd1.tar.gz
fix warning
-rw-r--r--Zend/zend_builtin_functions.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index 46168f7799..010d146fe8 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1266,6 +1266,8 @@ static zval *debug_backtrace_get_args(void ***curpos, int andjustonly TSRMLS_DC)
}
return arg_array;
}
+
+ return NULL;
}
/* {{{ proto void debug_backtrace(void)
@@ -1277,6 +1279,7 @@ ZEND_FUNCTION(debug_backtrace)
char *function_name;
char *filename;
char *class_name;
+ char *include_filename = NULL;
zval *stack_frame;
void **cur_arg_pos = EG(argument_stack).top_element;
@@ -1303,7 +1306,7 @@ ZEND_FUNCTION(debug_backtrace)
}
if (ptr->op_array) {
- filename = ptr->op_array->filename;
+ include_filename = filename = ptr->op_array->filename;
lineno = ptr->opline->lineno;
add_assoc_string_ex(stack_frame, "file", sizeof("file"), filename, 1);
add_assoc_long_ex(stack_frame, "line", sizeof("line"), lineno);
@@ -1321,14 +1324,22 @@ ZEND_FUNCTION(debug_backtrace)
add_assoc_zval_ex(stack_frame, "args", sizeof("args"), debug_backtrace_get_args(&cur_arg_pos, 0 TSRMLS_CC));
} else {
/* i know this is kinda ugly, but i'm trying to avoid extra cycles in the main execution loop */
+ int fn = 1;
switch (ptr->opline->op2.u.constant.value.lval) {
- case ZEND_EVAL: function_name = "eval"; break;
+ case ZEND_EVAL: function_name = "eval"; fn = 0; break;
case ZEND_INCLUDE: function_name = "include"; break;
case ZEND_REQUIRE: function_name = "require"; break;
case ZEND_INCLUDE_ONCE: function_name = "include_once"; break;
case ZEND_REQUIRE_ONCE: function_name = "require_once"; break;
- default: function_name = "unknown - please report a bug"; break;
+ default: function_name = "unknown - please report a bug"; fn = 0; break;
+ }
+
+ if (fn && include_filename) {
+ /* include_filename always points to the last known filename.
+ if we have called include in the frame above - this is the file we have included
+ */
+ printf("%s\n", include_filename);
}
add_assoc_string_ex(stack_frame, "function", sizeof("function"), function_name, 1);