summaryrefslogtreecommitdiff
path: root/sv.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-06-28 16:45:01 +0100
committerNicholas Clark <nick@ccl4.org>2010-06-28 22:53:59 +0100
commitc951e2ad069531f80b857752d3795306ce8bba2d (patch)
tree869adaac000c1c085d6be4b4f579c8667c7721fb /sv.h
parentfbb488de4b1b2c9d6a85cec051a1757cf4b8a728 (diff)
downloadperl-c951e2ad069531f80b857752d3795306ce8bba2d.tar.gz
Eliminate macro _XPVIO_TAIL by inlining it within struct xpvio.
_XPVIO_TAIL was added in 167f2c4d08e1e800, but has only been used in 1 location since xpvio_allocated was removed in b6f609162799aa49. This restores the header layout to the situation as it was before 167f2c4d08e1e800, although there are changes to the structure itself.
Diffstat (limited to 'sv.h')
-rw-r--r--sv.h57
1 files changed, 27 insertions, 30 deletions
diff --git a/sv.h b/sv.h
index 3f31920982..9c6dfd866c 100644
--- a/sv.h
+++ b/sv.h
@@ -505,40 +505,37 @@ struct xpvfm {
IV xfm_lines;
};
-#define _XPVIO_TAIL \
- PerlIO * xio_ifp; /* ifp and ofp are normally the same */ \
- PerlIO * xio_ofp; /* but sockets need separate streams */ \
- /* Cray addresses everything by word boundaries (64 bits) and \
- * code and data pointers cannot be mixed (which is exactly what \
- * Perl_filter_add() tries to do with the dirp), hence the \
- * following union trick (as suggested by Gurusamy Sarathy). \
- * For further information see Geir Johansen's problem report \
- * titled [ID 20000612.002] Perl problem on Cray system \
- * The any pointer (known as IoANY()) will also be a good place \
- * to hang any IO disciplines to. \
- */ \
- union { \
- DIR * xiou_dirp; /* for opendir, readdir, etc */ \
- void * xiou_any; /* for alignment */ \
- } xio_dirpu; \
- /* IV xio_lines is now in IVX $. */ \
- IV xio_page; /* $% */ \
- IV xio_page_len; /* $= */ \
- IV xio_lines_left; /* $- */ \
- char * xio_top_name; /* $^ */ \
- GV * xio_top_gv; /* $^ */ \
- char * xio_fmt_name; /* $~ */ \
- GV * xio_fmt_gv; /* $~ */ \
- char * xio_bottom_name;/* $^B */ \
- GV * xio_bottom_gv; /* $^B */ \
- char xio_type; \
- U8 xio_flags
-
struct xpvio {
_XPV_HEAD;
union _xivu xiv_u;
- _XPVIO_TAIL;
+ PerlIO * xio_ifp; /* ifp and ofp are normally the same */
+ PerlIO * xio_ofp; /* but sockets need separate streams */
+ /* Cray addresses everything by word boundaries (64 bits) and
+ * code and data pointers cannot be mixed (which is exactly what
+ * Perl_filter_add() tries to do with the dirp), hence the
+ * following union trick (as suggested by Gurusamy Sarathy).
+ * For further information see Geir Johansen's problem report
+ * titled [ID 20000612.002] Perl problem on Cray system
+ * The any pointer (known as IoANY()) will also be a good place
+ * to hang any IO disciplines to.
+ */
+ union {
+ DIR * xiou_dirp; /* for opendir, readdir, etc */
+ void * xiou_any; /* for alignment */
+ } xio_dirpu;
+ /* IV xio_lines is now in IVX $. */
+ IV xio_page; /* $% */
+ IV xio_page_len; /* $= */
+ IV xio_lines_left; /* $- */
+ char * xio_top_name; /* $^ */
+ GV * xio_top_gv; /* $^ */
+ char * xio_fmt_name; /* $~ */
+ GV * xio_fmt_gv; /* $~ */
+ char * xio_bottom_name;/* $^B */
+ GV * xio_bottom_gv; /* $^B */
+ char xio_type;
+ U8 xio_flags;
};
#define xio_dirp xio_dirpu.xiou_dirp