/* RV upwards. However, SVf_ROK and SVp_IOK are exclusive */
#define SVprv_WEAKREF 0x80000000 /* Weak reference */
-#define _XPV_ALLOCATED_HEAD \
- STRLEN xpv_cur; /* length of svu_pv as a C string */ \
- STRLEN xpv_len /* allocated size */
-
#define _XPV_HEAD \
union _xnvu xnv_u; \
- _XPV_ALLOCATED_HEAD
+ STRLEN xpv_cur; /* length of svu_pv as a C string */ \
+ STRLEN xpv_len /* allocated size */
union _xnvu {
NV xnv_nv; /* numeric value, if any */
_XPV_HEAD;
};
-typedef struct {
- _XPV_ALLOCATED_HEAD;
-} xpv_allocated;
-
struct xpviv {
_XPV_HEAD;
union _xivu xiv_u;
};
-typedef struct {
- _XPV_ALLOCATED_HEAD;
- union _xivu xiv_u;
-} xpviv_allocated;
-
#define xiv_iv xiv_u.xivu_iv
struct xpvuv {
_XPVCV_COMMON;
};
-typedef struct {
- _XPV_ALLOCATED_HEAD;
- _XPVMG_HEAD;
- _XPVCV_COMMON;
-} xpvfm_allocated;
-
#define _XPVIO_TAIL \
PerlIO * xio_ifp; /* ifp and ofp are normally the same */ \
PerlIO * xio_ofp; /* but sockets need separate streams */ \
_XPVIO_TAIL;
};
-typedef struct {
- _XPV_ALLOCATED_HEAD;
- _XPVMG_HEAD;
- _XPVIO_TAIL;
-} xpvio_allocated;
-
#define xio_dirp xio_dirpu.xiou_dirp
#define xio_any xio_dirpu.xiou_any
#define SvGAMAGIC(sv) (SvGMAGICAL(sv) || SvAMAGIC(sv))
-#define Gv_AMG(stash) (PL_amagic_generation && Gv_AMupdate(stash))
+#define Gv_AMG(stash) (PL_amagic_generation && Gv_AMupdate(stash, FALSE))
#define SvWEAKREF(sv) ((SvFLAGS(sv) & (SVf_ROK|SVprv_WEAKREF)) \
== (SVf_ROK|SVprv_WEAKREF))
} \
} STMT_END
#endif
+
+#define newIO() MUTABLE_IO(newSV_type(SVt_PVIO))
+
/*
* Local variables:
* c-indentation-style: bsd