This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge B::PADOP::padix into the common B::OP accessor XS code.
authorNicholas Clark <nick@ccl4.org>
Fri, 29 Oct 2010 19:43:49 +0000 (20:43 +0100)
committerNicholas Clark <nick@ccl4.org>
Fri, 29 Oct 2010 20:21:20 +0000 (21:21 +0100)
On this platform, this saves about 800 bytes.

ext/B/B.xs

index a0259a0..724a77e 100644 (file)
@@ -867,6 +867,8 @@ threadsv_names()
 #define SVOP_sv_ix             SVp | offsetof(struct svop, op_sv)
 #define SVOP_gv_ix             SVp | offsetof(struct svop, op_sv)
 
+#define PADOP_padix_ix         PADOFFSETp | offsetof(struct padop, op_padix)
+
 MODULE = B     PACKAGE = B::OP         PREFIX = OP_
 
 size_t
@@ -899,6 +901,7 @@ next(o)
        B::PMOP::pmflags = PMOP_pmflags_ix
        B::SVOP::sv = SVOP_sv_ix
        B::SVOP::gv = SVOP_gv_ix
+       B::PADOP::padix = PADOP_padix_ix
     PREINIT:
        char *ptr;
        SV *ret;
@@ -1135,7 +1138,6 @@ BOOT:
 #endif
 }
 
-#define PADOP_padix(o) o->op_padix
 #define PADOP_sv(o)    (o->op_padix ? PAD_SVl(o->op_padix) : Nullsv)
 #define PADOP_gv(o)    ((o->op_padix \
                          && SvTYPE(PAD_SVl(o->op_padix)) == SVt_PVGV) \
@@ -1143,10 +1145,6 @@ BOOT:
 
 MODULE = B     PACKAGE = B::PADOP              PREFIX = PADOP_
 
-PADOFFSET
-PADOP_padix(o)
-       B::PADOP o
-
 B::SV
 PADOP_sv(o)
        B::PADOP o