improve error messages when error raised from an internal class (do not hide class name)

This commit is contained in:
Antony Dovgal 2005-06-17 11:25:31 +00:00
parent 8d2dd7901c
commit baf8cadeff
2 changed files with 19 additions and 7 deletions

View file

@ -197,7 +197,10 @@ ZEND_API int zend_copy_parameters_array(int param_count, zval *argument_array TS
ZEND_API void zend_wrong_param_count(TSRMLS_D) ZEND_API void zend_wrong_param_count(TSRMLS_D)
{ {
zend_error(E_WARNING, "Wrong parameter count for %s()", get_active_function_name(TSRMLS_C)); char *space;
char *class_name = get_active_class_name(&space TSRMLS_CC);
zend_error(E_WARNING, "Wrong parameter count for %s%s%s()", class_name, space, get_active_function_name(TSRMLS_C));
} }
@ -488,8 +491,11 @@ static int zend_parse_arg(int arg_num, zval **arg, va_list *va, char **spec, int
expected_type = zend_parse_arg_impl(arg, va, spec TSRMLS_CC); expected_type = zend_parse_arg_impl(arg, va, spec TSRMLS_CC);
if (expected_type) { if (expected_type) {
if (!quiet) { if (!quiet) {
zend_error(E_WARNING, "%s() expects parameter %d to be %s, %s given", char *space;
get_active_function_name(TSRMLS_C), arg_num, expected_type, char *class_name = get_active_class_name(&space TSRMLS_CC);
zend_error(E_WARNING, "%s%s%s() expects parameter %d to be %s, %s given",
class_name, space, get_active_function_name(TSRMLS_C), arg_num, expected_type,
zend_zval_type_name(*arg)); zend_zval_type_name(*arg));
} }
return FAILURE; return FAILURE;

View file

@ -114,16 +114,20 @@ ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, c
void *resource; void *resource;
va_list resource_types; va_list resource_types;
int i; int i;
char *space;
char *class_name;
if (default_id==-1) { /* use id */ if (default_id==-1) { /* use id */
if (!passed_id) { if (!passed_id) {
if (resource_type_name) { if (resource_type_name) {
zend_error(E_WARNING, "%s(): no %s resource supplied", get_active_function_name(TSRMLS_C), resource_type_name); class_name = get_active_class_name(&space TSRMLS_CC);
zend_error(E_WARNING, "%s%s%s(): no %s resource supplied", class_name, space, get_active_function_name(TSRMLS_C), resource_type_name);
} }
return NULL; return NULL;
} else if ((*passed_id)->type != IS_RESOURCE) { } else if ((*passed_id)->type != IS_RESOURCE) {
if (resource_type_name) { if (resource_type_name) {
zend_error(E_WARNING, "%s(): supplied argument is not a valid %s resource", get_active_function_name(TSRMLS_C), resource_type_name); class_name = get_active_class_name(&space TSRMLS_CC);
zend_error(E_WARNING, "%s%s%s(): supplied argument is not a valid %s resource", class_name, space, get_active_function_name(TSRMLS_C), resource_type_name);
} }
return NULL; return NULL;
} }
@ -135,7 +139,8 @@ ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, c
resource = zend_list_find(id, &actual_resource_type); resource = zend_list_find(id, &actual_resource_type);
if (!resource) { if (!resource) {
if (resource_type_name) { if (resource_type_name) {
zend_error(E_WARNING, "%s(): %d is not a valid %s resource", get_active_function_name(TSRMLS_C), id, resource_type_name); class_name = get_active_class_name(&space TSRMLS_CC);
zend_error(E_WARNING, "%s%s%s(): %d is not a valid %s resource", class_name, space, get_active_function_name(TSRMLS_C), id, resource_type_name);
} }
return NULL; return NULL;
} }
@ -153,7 +158,8 @@ ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, c
va_end(resource_types); va_end(resource_types);
if (resource_type_name) { if (resource_type_name) {
zend_error(E_WARNING, "%s(): supplied resource is not a valid %s resource", get_active_function_name(TSRMLS_C), resource_type_name); class_name = get_active_class_name(&space TSRMLS_CC);
zend_error(E_WARNING, "%s%s%s(): supplied resource is not a valid %s resource", class_name, space, get_active_function_name(TSRMLS_C), resource_type_name);
} }
return NULL; return NULL;