Skip to content

Commit baf8cad

Browse files
committed
improve error messages when error raised from an internal class (do not hide class name)
1 parent 8d2dd79 commit baf8cad

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

Zend/zend_API.c

+9-3
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,10 @@ ZEND_API int zend_copy_parameters_array(int param_count, zval *argument_array TS
197197

198198
ZEND_API void zend_wrong_param_count(TSRMLS_D)
199199
{
200-
zend_error(E_WARNING, "Wrong parameter count for %s()", get_active_function_name(TSRMLS_C));
200+
char *space;
201+
char *class_name = get_active_class_name(&space TSRMLS_CC);
202+
203+
zend_error(E_WARNING, "Wrong parameter count for %s%s%s()", class_name, space, get_active_function_name(TSRMLS_C));
201204
}
202205

203206

@@ -488,8 +491,11 @@ static int zend_parse_arg(int arg_num, zval **arg, va_list *va, char **spec, int
488491
expected_type = zend_parse_arg_impl(arg, va, spec TSRMLS_CC);
489492
if (expected_type) {
490493
if (!quiet) {
491-
zend_error(E_WARNING, "%s() expects parameter %d to be %s, %s given",
492-
get_active_function_name(TSRMLS_C), arg_num, expected_type,
494+
char *space;
495+
char *class_name = get_active_class_name(&space TSRMLS_CC);
496+
497+
zend_error(E_WARNING, "%s%s%s() expects parameter %d to be %s, %s given",
498+
class_name, space, get_active_function_name(TSRMLS_C), arg_num, expected_type,
493499
zend_zval_type_name(*arg));
494500
}
495501
return FAILURE;

Zend/zend_list.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -114,16 +114,20 @@ ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, c
114114
void *resource;
115115
va_list resource_types;
116116
int i;
117+
char *space;
118+
char *class_name;
117119

118120
if (default_id==-1) { /* use id */
119121
if (!passed_id) {
120122
if (resource_type_name) {
121-
zend_error(E_WARNING, "%s(): no %s resource supplied", get_active_function_name(TSRMLS_C), resource_type_name);
123+
class_name = get_active_class_name(&space TSRMLS_CC);
124+
zend_error(E_WARNING, "%s%s%s(): no %s resource supplied", class_name, space, get_active_function_name(TSRMLS_C), resource_type_name);
122125
}
123126
return NULL;
124127
} else if ((*passed_id)->type != IS_RESOURCE) {
125128
if (resource_type_name) {
126-
zend_error(E_WARNING, "%s(): supplied argument is not a valid %s resource", get_active_function_name(TSRMLS_C), resource_type_name);
129+
class_name = get_active_class_name(&space TSRMLS_CC);
130+
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);
127131
}
128132
return NULL;
129133
}
@@ -135,7 +139,8 @@ ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, c
135139
resource = zend_list_find(id, &actual_resource_type);
136140
if (!resource) {
137141
if (resource_type_name) {
138-
zend_error(E_WARNING, "%s(): %d is not a valid %s resource", get_active_function_name(TSRMLS_C), id, resource_type_name);
142+
class_name = get_active_class_name(&space TSRMLS_CC);
143+
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);
139144
}
140145
return NULL;
141146
}
@@ -153,7 +158,8 @@ ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, c
153158
va_end(resource_types);
154159

155160
if (resource_type_name) {
156-
zend_error(E_WARNING, "%s(): supplied resource is not a valid %s resource", get_active_function_name(TSRMLS_C), resource_type_name);
161+
class_name = get_active_class_name(&space TSRMLS_CC);
162+
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);
157163
}
158164

159165
return NULL;

0 commit comments

Comments
 (0)