#define AvALLOC(av) (*((SV***)&((XPVAV*) SvANY(av))->xav_alloc))
#define AvMAX(av) ((XPVAV*) SvANY(av))->xav_max
#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill
-#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ (AV*)av))
+#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ MUTABLE_AV(av)))
#define AvREAL(av) (SvFLAGS(av) & SVpav_REAL)
#define AvREAL_on(av) (SvFLAGS(av) |= SVpav_REAL)
#define AvREALISH(av) (SvFLAGS(av) & (SVpav_REAL|SVpav_REIFY))
-#define AvFILL(av) ((SvRMAGICAL((SV *) (av))) \
- ? mg_size((SV *) av) : AvFILLp(av))
+#define AvFILL(av) ((SvRMAGICAL((const SV *) (av))) \
+ ? mg_size(MUTABLE_SV(av)) : AvFILLp(av))
#define NEGATIVE_INDICES_VAR "NEGATIVE_INDICES"
=cut
*/
-#define newAV() ((AV *)newSV_type(SVt_PVAV))
+#define newAV() MUTABLE_AV(newSV_type(SVt_PVAV))
/*
* Local variables: