logo       

cvs: ZendEngine2 / zend_execute.c: msg#00037

Subject: cvs: ZendEngine2 / zend_execute.c
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




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
science.linguis...    culture.sf.lite...    video.mplayer.c...    yellowdog.gener...    ietf.rfc822/199...    emacs.help/2002...    redhat.release....    kernel.speakup/...    java.openejb.de...    debian.devel.gt...    xfree86.newbie/...    bug-tracking.ma...    pam/2003-05/msg...    games.devel.ope...    user-groups.lin...    music.pancham/2...    network.mq.deve...    web.html.genera...    arklinux.bugs/2...    linux.ecasound/...    qnx.openqnx.dev...    org.user-groups...    file-systems.sf...    trustix.contrib...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe