|
9 | 9 | */ |
10 | 10 |
|
11 | 11 | struct xpvav { |
12 | | - HV* xmg_stash; /* class package */ |
13 | | - union _xmgu xmg_u; |
14 | | - SSize_t xav_fill; /* Index of last element present */ |
15 | | - SSize_t xav_max; /* max index for which array has space */ |
16 | | - SV** xav_alloc; /* pointer to beginning of C array of SVs */ |
| 12 | + HV* xmg_stash; /* class package */ |
| 13 | + union _xmgu xmg_u; |
| 14 | + SSize_t xav_fill; /* Index of last element present */ |
| 15 | + SSize_t xav_max; /* max index for which array has space */ |
| 16 | + SV** xav_alloc; /* pointer to beginning of C array of SVs */ |
17 | 17 | }; |
18 | 18 |
|
19 | | -/* SV* xav_arylen; */ |
| 19 | +/* SV* xav_arylen; */ |
20 | 20 |
|
21 | 21 | /* SVpav_REAL is set for all AVs whose xav_array contents are refcounted |
22 | 22 | * and initialized such that any element can be retrieved as a SV*. |
@@ -75,25 +75,25 @@ If all you need is to look up an array element, then prefer C<av_fetch>. |
75 | 75 | # define Nullav Null(AV*) |
76 | 76 | #endif |
77 | 77 |
|
78 | | -#define AvARRAY(av) ((av)->sv_u.svu_array) |
79 | | -#define AvALLOC(av) ((XPVAV*) SvANY(av))->xav_alloc |
80 | | -#define AvMAX(av) ((XPVAV*) SvANY(av))->xav_max |
81 | | -#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill |
82 | | -#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ MUTABLE_AV(av))) |
83 | | - |
84 | | -#define AvREAL(av) (SvFLAGS(av) & SVpav_REAL) |
85 | | -#define AvREAL_on(av) (SvFLAGS(av) |= SVpav_REAL) |
86 | | -#define AvREAL_off(av) (SvFLAGS(av) &= ~SVpav_REAL) |
87 | | -#define AvREAL_only(av) (AvREIFY_off(av), SvFLAGS(av) |= SVpav_REAL) |
88 | | -#define AvREIFY(av) (SvFLAGS(av) & SVpav_REIFY) |
89 | | -#define AvREIFY_on(av) (SvFLAGS(av) |= SVpav_REIFY) |
90 | | -#define AvREIFY_off(av) (SvFLAGS(av) &= ~SVpav_REIFY) |
91 | | -#define AvREIFY_only(av) (AvREAL_off(av), SvFLAGS(av) |= SVpav_REIFY) |
92 | | - |
93 | | - |
94 | | -#define AvREALISH(av) (SvFLAGS(av) & (SVpav_REAL|SVpav_REIFY)) |
95 | | - |
96 | | -#define AvFILL(av) ((SvRMAGICAL((const SV *) (av))) \ |
| 78 | +#define AvARRAY(av) ((av)->sv_u.svu_array) |
| 79 | +#define AvALLOC(av) ((XPVAV*) SvANY(av))->xav_alloc |
| 80 | +#define AvMAX(av) ((XPVAV*) SvANY(av))->xav_max |
| 81 | +#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill |
| 82 | +#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ MUTABLE_AV(av))) |
| 83 | + |
| 84 | +#define AvREAL(av) (SvFLAGS(av) & SVpav_REAL) |
| 85 | +#define AvREAL_on(av) (SvFLAGS(av) |= SVpav_REAL) |
| 86 | +#define AvREAL_off(av) (SvFLAGS(av) &= ~SVpav_REAL) |
| 87 | +#define AvREAL_only(av) (AvREIFY_off(av), SvFLAGS(av) |= SVpav_REAL) |
| 88 | +#define AvREIFY(av) (SvFLAGS(av) & SVpav_REIFY) |
| 89 | +#define AvREIFY_on(av) (SvFLAGS(av) |= SVpav_REIFY) |
| 90 | +#define AvREIFY_off(av) (SvFLAGS(av) &= ~SVpav_REIFY) |
| 91 | +#define AvREIFY_only(av) (AvREAL_off(av), SvFLAGS(av) |= SVpav_REIFY) |
| 92 | + |
| 93 | + |
| 94 | +#define AvREALISH(av) (SvFLAGS(av) & (SVpav_REAL|SVpav_REIFY)) |
| 95 | + |
| 96 | +#define AvFILL(av) ((SvRMAGICAL((const SV *) (av))) \ |
97 | 97 | ? mg_size(MUTABLE_SV(av)) : AvFILLp(av)) |
98 | 98 | #define av_top_index(av) AvFILL(av) |
99 | 99 | #define av_tindex(av) av_top_index(av) |
@@ -209,7 +209,7 @@ to fit one element without extending: |
209 | 209 |
|
210 | 210 | */ |
211 | 211 |
|
212 | | -#define newAV() MUTABLE_AV(newSV_type(SVt_PVAV)) |
| 212 | +#define newAV() MUTABLE_AV(newSV_type(SVt_PVAV)) |
213 | 213 | #define newAV_alloc_x(size) av_new_alloc(size,0) |
214 | 214 | #define newAV_alloc_xz(size) av_new_alloc(size,1) |
215 | 215 |
|
|
0 commit comments