diff options
author | Nicholas Clark <nick@ccl4.org> | 2010-06-28 16:45:01 +0100 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2010-06-28 22:53:59 +0100 |
commit | c951e2ad069531f80b857752d3795306ce8bba2d (patch) | |
tree | 869adaac000c1c085d6be4b4f579c8667c7721fb /sv.h | |
parent | fbb488de4b1b2c9d6a85cec051a1757cf4b8a728 (diff) | |
download | perl-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.h | 57 |
1 files changed, 27 insertions, 30 deletions
@@ -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 |