X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=universal.c;h=f06596517a95794d2add1717839a40fc7d93243f;hb=9e0d86f862e086b0fde6b64ca39c85508bf50910;hp=d07ff2fd11d4f5214d97db5ec12d9fd03d3a1707;hpb=06be3b4087230d77129ccda5ba56e0397c241c48;p=p5sagit%2Fp5-mst-13.2.git diff --git a/universal.c b/universal.c index d07ff2f..f065965 100644 --- a/universal.c +++ b/universal.c @@ -62,7 +62,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, const HV* const name_stash, gvp = (GV**)hv_fetchs(stash, "::ISA::CACHE::", FALSE); - if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (subgen = GvSV(gv)) + if (gvp && (gv = *gvp) && isGV_with_GP(gv) && (subgen = GvSV(gv)) && (hv = GvHV(gv))) { if (SvIV(subgen) == (IV)PL_sub_generation) { @@ -87,7 +87,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, const HV* const name_stash, gvp = (GV**)hv_fetchs(stash, "ISA", FALSE); - if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (av = GvAV(gv))) { + if (gvp && (gv = *gvp) && isGV_with_GP(gv) && (av = GvAV(gv))) { if (!hv || !subgen) { gvp = (GV**)hv_fetchs(stash, "::ISA::CACHE::", TRUE);