helly Wed Sep 14 14:21:13 2005 EDT
Modified files:
/ZendEngine2 zend_execute.c
Log:
- Improve error message
http://cvs.php.net/diff.php/ZendEngine2/zend_execute.c?r1=1.719&r2=1.720&ty=u
Index: ZendEngine2/zend_execute.c
diff -u ZendEngine2/zend_execute.c:1.719 ZendEngine2/zend_execute.c:1.720
--- ZendEngine2/zend_execute.c:1.719 Mon Sep 12 13:42:43 2005
+++ ZendEngine2/zend_execute.c Wed Sep 14 14:21:11 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.c,v 1.719 2005/09/12 17:42:43 pollita Exp $ */
+/* $Id: zend_execute.c,v 1.720 2005/09/14 18:21:11 helly Exp $ */
#define ZEND_INTENSIVE_DEBUGGING 0
@@ -472,6 +472,7 @@
{
zend_arg_info *cur_arg_info;
zend_execute_data *ptr = EG(current_execute_data)->prev_execute_data;
+ char *fclass, *fsep, *fname;
if (!zf->common.arg_info
|| arg_num>zf->common.num_args) {
@@ -479,22 +480,25 @@
}
cur_arg_info = &zf->common.arg_info[arg_num-1];
+ fname = zf->common.function_name;
+ fsep = zf->common.scope ? "::" : "";
+ fclass = zf->common.scope ? zf->common.scope->name : "";
if (cur_arg_info->class_name) {
if (!arg) {
if(ptr && ptr->op_array) {
- zend_error_noreturn(E_ERROR, "Argument %d must
be an object of class %v, called in %s on line %d and defined", arg_num,
cur_arg_info->class_name, ptr->op_array->filename, ptr->opline->lineno);
+ zend_error_noreturn(E_ERROR, "Argument %d to
%s%s%s() must be an object of class %v, called in %s on line %d and defined",
arg_num, fclass, fsep, fname, cur_arg_info->class_name,
ptr->op_array->filename, ptr->opline->lineno);
} else {
- zend_error_noreturn(E_ERROR, "Argument %d must
be an object of class %v", arg_num, cur_arg_info->class_name);
+ zend_error_noreturn(E_ERROR, "Argument %d to
%s%s%s() must be an object of class %v", arg_num, fclass, fsep, fname,
cur_arg_info->class_name);
}
}
switch (Z_TYPE_P(arg)) {
case IS_NULL:
if (!cur_arg_info->allow_null) {
if(ptr && ptr->op_array) {
- zend_error_noreturn(E_ERROR,
"Argument %d must not be null, called in %s on line %d and defined", arg_num,
ptr->op_array->filename, ptr->opline->lineno);
+ zend_error_noreturn(E_ERROR,
"Argument %d to %s%s%s() must not be null, called in %s on line %d and
defined", arg_num, fclass, fsep, fname, ptr->op_array->filename,
ptr->opline->lineno);
} else {
- zend_error_noreturn(E_ERROR,
"Argument %d must not be null", arg_num);
+ zend_error_noreturn(E_ERROR,
"Argument %d to %s%s%s() must not be null", arg_num, fclass, fsep, fname);
}
}
break;
@@ -509,36 +513,36 @@
error_msg = "be an
instance of";
}
if(ptr && ptr->op_array) {
-
zend_error_noreturn(E_ERROR, "Argument %d must %s %v, called in %s on line %d
and defined", arg_num, error_msg, ce->name, ptr->op_array->filename,
ptr->opline->lineno);
+
zend_error_noreturn(E_ERROR, "Argument %d to %s%s%s() must %s %v, called in %s
on line %d and defined", arg_num, fclass, fsep, fname, error_msg, ce->name,
ptr->op_array->filename, ptr->opline->lineno);
} else {
-
zend_error_noreturn(E_ERROR, "Argument %d must %s %v", arg_num, error_msg,
ce->name);
+
zend_error_noreturn(E_ERROR, "Argument %d to %s%s%s() must %s %v", arg_num,
fclass, fsep, fname, error_msg, ce->name);
}
}
}
break;
default:
if(ptr && ptr->op_array) {
- zend_error_noreturn(E_ERROR, "Argument
%d must be an object of class %v, called in %s on line %d and defined",
arg_num, cur_arg_info->class_name, ptr->op_array->filename,
ptr->opline->lineno);
+ zend_error_noreturn(E_ERROR, "Argument
%d to %s%s%s() must be an object of class %v, called in %s on line %d and
defined", arg_num, fclass, fsep, fname, cur_arg_info->class_name,
ptr->op_array->filename, ptr->opline->lineno);
} else {
- zend_error_noreturn(E_ERROR, "Argument
%d must be an object of class %v", arg_num, cur_arg_info->class_name);
+ zend_error_noreturn(E_ERROR, "Argument
%d to %s%s%s() must be an object of class %v", arg_num, fclass, fsep, fname,
cur_arg_info->class_name);
}
break;
}
} else if (cur_arg_info->array_type_hint) {
if (!arg) {
if(ptr && ptr->op_array) {
- zend_error_noreturn(E_ERROR, "Argument %d must
be an array, called in %s on line %d and defined", arg_num,
ptr->op_array->filename, ptr->opline->lineno);
+ zend_error_noreturn(E_ERROR, "Argument %d to
%s%s%s() must be an array, called in %s on line %d and defined", arg_num,
fclass, fsep, fname, ptr->op_array->filename, ptr->opline->lineno);
} else {
- zend_error_noreturn(E_ERROR, "Argument %d must
be an array", arg_num);
+ zend_error_noreturn(E_ERROR, "Argument %d to
%s%s%s() must be an array", arg_num, fclass, fsep, fname);
}
}
switch (Z_TYPE_P(arg)) {
case IS_NULL:
if (!cur_arg_info->allow_null) {
if(ptr && ptr->op_array) {
- zend_error_noreturn(E_ERROR,
"Argument %d must not be null, called in %s on line %d and defined", arg_num,
ptr->op_array->filename, ptr->opline->lineno);
+ zend_error_noreturn(E_ERROR,
"Argument %d to %s%s%s() must not be null, called in %s on line %d and
defined", arg_num, fclass, fsep, fname, ptr->op_array->filename,
ptr->opline->lineno);
} else {
- zend_error_noreturn(E_ERROR,
"Argument %d must not be null", arg_num);
+ zend_error_noreturn(E_ERROR,
"Argument %d to %s%s%s() must not be null", arg_num, fclass, fsep, fname);
}
}
break;
@@ -546,9 +550,9 @@
break;
default:
if(ptr && ptr->op_array) {
- zend_error_noreturn(E_ERROR, "Argument
%d must be an array, called in %s on line %d and defined", arg_num,
ptr->op_array->filename, ptr->opline->lineno);
+ zend_error_noreturn(E_ERROR, "Argument
%d to %s%s%s() must be an array, called in %s on line %d and defined", arg_num,
fclass, fsep, fname, ptr->op_array->filename, ptr->opline->lineno);
} else {
- zend_error_noreturn(E_ERROR, "Argument
%d must be an array", arg_num);
+ zend_error_noreturn(E_ERROR, "Argument
%d to %s%s%s() must be an array", arg_num, fclass, fsep, fname);
}
break;
}
--
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
|