zend_uint arg_num = opline->op1.u.constant.value.lval;
if (zend_ptr_stack_get_arg(arg_num, (void **) ¶m 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);
}
/* 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);
}
+/* 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)) {
}
/* }}} */
-/* {{{ 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 */