X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=gv.c;h=fff3bcfa876ae2c4748d0cadfe13b989e86449ae;hb=fb73857aa0bfa8ed43d4d2f972c564c70a57e0c4;hp=665825963f461f06b29a443563aacded4b5e6e3e;hpb=464ed3b648d262825ad1bfc5a2e55de2507fd651;p=p5sagit%2Fp5-mst-13.2.git diff --git a/gv.c b/gv.c index 6658259..fff3bcf 100644 --- a/gv.c +++ b/gv.c @@ -170,8 +170,8 @@ I32 level; gvp = (GV**)hv_fetch(stash, "ISA", 3, FALSE); av = (gvp && (gv = *gvp) && gv != (GV*)&sv_undef) ? GvAV(gv) : Nullav; - /* create @.*::SUPER::ISA on demand */ - if (!av) { + /* create and re-create @.*::SUPER::ISA on demand */ + if (!av || !SvMAGIC(av)) { char* packname = HvNAME(stash); STRLEN packlen = strlen(packname); @@ -740,6 +740,7 @@ I32 sv_type; case '7': case '8': case '9': + case '\023': ro_magicalize: SvREADONLY_on(GvSV(gv)); magicalize: