union _xivu {
IV xivu_iv; /* integer value */
- /* xpvfm: pv offset */
+ /* xpvfm: lines */
UV xivu_uv;
void * xivu_p1;
I32 xivu_i32;
_XPV_HEAD;
_XPVMG_HEAD;
_XPVCV_COMMON;
- IV xfm_lines;
};
typedef struct {
_XPV_ALLOCATED_HEAD;
_XPVMG_HEAD;
_XPVCV_COMMON;
- IV xfm_lines;
} xpvfm_allocated;
#define _XPVIO_TAIL \
assert(SvTYPE(_svivx) != SVt_PVAV); \
assert(SvTYPE(_svivx) != SVt_PVHV); \
assert(SvTYPE(_svivx) != SVt_PVCV); \
+ assert(SvTYPE(_svivx) != SVt_PVFM); \
assert(!isGV_with_GP(_svivx)); \
&(((XPVIV*) SvANY(_svivx))->xiv_iv); \
}))
assert(SvTYPE(_svuvx) != SVt_PVAV); \
assert(SvTYPE(_svuvx) != SVt_PVHV); \
assert(SvTYPE(_svuvx) != SVt_PVCV); \
+ assert(SvTYPE(_svuvx) != SVt_PVFM); \
assert(!isGV_with_GP(_svuvx)); \
&(((XPVUV*) SvANY(_svuvx))->xuv_uv); \
}))
(((XPV*) SvANY(sv))->xpv_len = (val)); } STMT_END
#define SvEND_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
- (SvCUR(sv) = (val) - SvPVX(sv)); } STMT_END
+ SvCUR_set(sv, (val) - SvPVX(sv)); } STMT_END
#define SvPV_renew(sv,n) \
STMT_START { SvLEN_set(sv, n); \
#endif
-#define FmLINES(sv) ((XPVFM*) SvANY(sv))->xfm_lines
+#define FmLINES(sv) ((XPVFM*) SvANY(sv))->xiv_u.xivu_iv
#define LvTYPE(sv) ((XPVLV*) SvANY(sv))->xlv_type
#define LvTARG(sv) ((XPVLV*) SvANY(sv))->xlv_targ