restore_magic(aTHXo_ (void*)mgs_ix);
restore_magic(aTHXo_ (void*)(intptr_t)mgs_ix);
Perl_mg_size(pTHX_ SV *sv){    MAGIC* mg;    I32 len;        for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {	MGVTBL* vtbl = mg->mg_virtual;	if (vtbl && vtbl->svt_len) {            I32 mgs_ix;	    mgs_ix = SSNEW(sizeof(MGS));	    save_magic(mgs_ix, sv);	    /* omit MGf_GSKIP -- not changed here */	    len = CALL_FPTR(vtbl->svt_len)(aTHX_ sv, mg);	    restore_magic(aTHXo_ (void*)mgs_ix);	    return len;	}    }    switch(SvTYPE(sv)) {	case SVt_PVAV:	    len = AvFILLp((AV *) sv); /* Fallback to non-tied array */	    return len;	case SVt_PVHV:	    /* FIXME */	default:	    Perl_croak(aTHX_ "Size magic not implemented");	    break;    }    return 0;}