summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2004-03-16 10:14:57 +0000
committerMarcus Boerger <helly@php.net>2004-03-16 10:14:57 +0000
commit09e76476eff44df478ce287648cb80ad5bbfa7fc (patch)
tree6f770bb0875506498d10354c0732d75debec18d2
parent3b2f56275a1218085456b606b4190e048599b625 (diff)
downloadphp-git-09e76476eff44df478ce287648cb80ad5bbfa7fc.tar.gz
Improve error message
-rw-r--r--Zend/zend_execute.c4
-rw-r--r--Zend/zend_execute.h1
-rw-r--r--Zend/zend_execute_API.c29
-rw-r--r--main/main.c28
4 files changed, 33 insertions, 29 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 46f5efd173..c914f1fd73 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -3001,8 +3001,10 @@ int zend_recv_handler(ZEND_OPCODE_HANDLER_ARGS)
zend_uint arg_num = opline->op1.u.constant.value.lval;
if (zend_ptr_stack_get_arg(arg_num, (void **) &param TSRMLS_CC)==FAILURE) {
+ char *space;
+ char *class_name = get_active_class_name(&space TSRMLS_CC);
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, NULL TSRMLS_CC);
- zend_error(E_WARNING, "Missing argument %ld for %s()", opline->op1.u.constant.value.lval, get_active_function_name(TSRMLS_C));
+ zend_error(E_WARNING, "Missing argument %ld for %s%s%s()", opline->op1.u.constant.value.lval, class_name, space, get_active_function_name(TSRMLS_C));
if (opline->result.op_type == IS_VAR) {
PZVAL_UNLOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
}
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index 70d6f15d03..d4d02a49e7 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -142,6 +142,7 @@ void execute_new_code(TSRMLS_D);
/* services */
+ZEND_API char *get_active_class_name(char **space TSRMLS_DC);
ZEND_API char *get_active_function_name(TSRMLS_D);
ZEND_API char *zend_get_executed_filename(TSRMLS_D);
ZEND_API uint zend_get_executed_lineno(TSRMLS_D);
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index c2ea664636..7f4b1f7f33 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -297,6 +297,35 @@ void shutdown_executor(TSRMLS_D)
}
+/* return class name and "::" or "". */
+ZEND_API char *get_active_class_name(char **space TSRMLS_DC)
+{
+ if (!zend_is_executing(TSRMLS_C)) {
+ if (space) {
+ *space = "";
+ }
+ return "";
+ }
+ switch (EG(function_state_ptr)->function->type) {
+ case ZEND_USER_FUNCTION:
+ case ZEND_INTERNAL_FUNCTION:
+ {
+ zend_class_entry *ce = EG(function_state_ptr)->function->common.scope;
+
+ if (space) {
+ *space = ce ? "::" : "";
+ }
+ return ce ? ce->name : "";
+ }
+ default:
+ if (space) {
+ *space = "";
+ }
+ return "";
+ }
+}
+
+
ZEND_API char *get_active_function_name(TSRMLS_D)
{
if (!zend_is_executing(TSRMLS_C)) {
diff --git a/main/main.c b/main/main.c
index 83c8633c69..680a7b4922 100644
--- a/main/main.c
+++ b/main/main.c
@@ -424,34 +424,6 @@ static int php_during_module_shutdown()
}
/* }}} */
-/* {{{ get_active_class_name */
-static char *get_active_class_name(char **space TSRMLS_DC)
-{
- if (!zend_is_executing(TSRMLS_C)) {
- if (space) {
- *space = "";
- }
- return "";
- }
- switch (EG(function_state_ptr)->function->type) {
- case ZEND_USER_FUNCTION:
- case ZEND_INTERNAL_FUNCTION:
- {
- zend_class_entry *ce = EG(function_state_ptr)->function->common.scope;
-
- if (space) {
- *space = ce ? "::" : "";
- }
- return ce ? ce->name : "";
- }
- default:
- if (space) {
- *space = "";
- }
- return "";
- }
-}
-/* }}} */
/* }}} */
/* {{{ php_verror */