]> granicus.if.org Git - php/commitdiff
Improve error message
authorMarcus Boerger <helly@php.net>
Tue, 16 Mar 2004 10:14:57 +0000 (10:14 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 16 Mar 2004 10:14:57 +0000 (10:14 +0000)
Zend/zend_execute.c
Zend/zend_execute.h
Zend/zend_execute_API.c
main/main.c

index 46f5efd173fd5180dd554c31dd182c2b94bdce65..c914f1fd73742a12d2a0a4d89f0d62ed2c70e79a 100644 (file)
@@ -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);
                }
index 70d6f15d03b3b916bcfb62dcd2c274afab515da3..d4d02a49e70a18017de7495dfc9c4d8e057e4392 100644 (file)
@@ -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);
index c2ea664636aec6476b9180c995f0e6db19c7bc84..7f4b1f7f33492cc9dbb93ee4539a0ab23964d860 100644 (file)
@@ -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)) {
index 83c8633c690cf61214b29e1f2bf15ffd13564db7..680a7b492268ce146005a216609032a1bce3e6ac 100644 (file)
@@ -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 */