function_name_strlen = tmp.value.str.len;
}
- ce = EX_T(EX(opline)->op1.u.var).EA.class_entry;
+ if (EX(opline)->op1.op_type == IS_UNUSED) {
+ ce = EG(global_namespace_ptr);
+ } else {
+ ce = EX_T(EX(opline)->op1.u.var).EA.class_entry;
+ }
EX(fbc) = zend_std_get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC);
EX(calling_scope) = EX(fbc)->common.scope;
zend_function *fbc;
if (zend_hash_find(&ce->function_table, function_name_strval, function_name_strlen+1, (void **) &fbc)==FAILURE) {
- zend_error(E_ERROR, "Call to undefined method %s::%s()", ce->name, function_name_strval);
+ char *class_name = ce->name;
+
+ if (!class_name) {
+ class_name = "";
+ }
+ zend_error(E_ERROR, "Call to undefined method %s::%s()", class_name, function_name_strval);
}
if (fbc->op_array.fn_flags & ZEND_ACC_PUBLIC) {
/* No further checks necessary, most common case */