GV *
Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload)
{
+ PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD;
+
return gv_fetchmethod_flags(stash, name, autoload ? GV_AUTOLOAD : 0);
}
const U32 autoload = flags & GV_AUTOLOAD;
const U32 do_croak = flags & GV_CROAK;
- PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD;
+ PERL_ARGS_ASSERT_GV_FETCHMETHOD_FLAGS;
- if (stash && SvTYPE(stash) < SVt_PVHV)
+ if (SvTYPE(stash) < SVt_PVHV)
stash = NULL;
+ else {
+ /* The only way stash can become NULL later on is if nsplit is set,
+ which in turn means that there is no need for a SVt_PVHV case
+ the error reporting code. */
+ }
for (nend = name; *nend; nend++) {
if (*nend == '\'') {
STRLEN packlen;
const char *packname;
- assert(error_report);
-
if (nsplit) {
packlen = nsplit - origname;
packname = origname;
- } else if (SvTYPE(error_report) == SVt_PVHV) {
- packlen = HvNAMELEN_get(error_report);
- packname = HvNAME_get(error_report);
} else {
packname = SvPV_const(error_report, packlen);
}