if (SvTYPE(sv) >= SVt_PVMG && SvMAGIC(sv) &&
SvTYPE(sv) != SVt_PVGV)
{
- (void)SvUPGRADE(value, SvTYPE(sv));
+ SvUPGRADE(value, SvTYPE(sv));
SvMAGIC_set(value, SvMAGIC(sv));
SvFLAGS(value) |= SvMAGICAL(sv);
SvMAGICAL_off(sv);
gv = (GV*)SSPOPPTR;
if (GvAV(gv)) {
AV * const goner = GvAV(gv);
+ /* FIXME - this is a temporary hack until we work out what
+ the correct behaviour for magic should be. */
+ sv_unmagic((SV*)goner, PERL_MAGIC_arylen_p);
SvMAGIC_set(av, SvMAGIC(goner));
SvFLAGS((SV*)av) |= SvMAGICAL(goner);
SvMAGICAL_off(goner);