X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FB%2FB.xs;h=eca6f08870c718c0e8607c09125f275b76122f9b;hb=597c4554ca87aa4325a00c70a0fbb22acbfcfa07;hp=c9a4c99d2674243686bd476b7efad7f1a29698ff;hpb=3ae1b22641a16d4d08aba688616c0f7cefb7d1f5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/B/B.xs b/ext/B/B.xs index c9a4c99..eca6f08 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -463,6 +463,16 @@ cchar(pTHX_ SV *sv) return sstr; } +#if PERL_VERSION >= 9 +# define PMOP_pmreplstart(o) o->op_pmstashstartu.op_pmreplstart +# define PMOP_pmreplroot(o) o->op_pmreplrootu.op_pmreplroot +#else +# define PMOP_pmreplstart(o) o->op_pmreplstart +# define PMOP_pmreplroot(o) o->op_pmreplroot +# define PMOP_pmpermflags(o) o->op_pmpermflags +# define PMOP_pmdynflags(o) o->op_pmdynflags +#endif + static void walkoptree(pTHX_ SV *opsv, const char *method) { @@ -492,12 +502,7 @@ walkoptree(pTHX_ SV *opsv, const char *method) } } if (o && (cc_opclass(aTHX_ o) == OPc_PMOP) && o->op_type != OP_PUSHRE -#if PERL_VERSION >= 9 - && (kid = cPMOPo->op_pmreplrootu.op_pmreplroot) -#else - && (kid = cPMOPo->op_pmreplroot) -#endif - ) + && (kid = PMOP_pmreplroot(cPMOPo))) { sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ kid)), PTR2IV(kid)); walkoptree(aTHX_ opsv, method); @@ -523,11 +528,7 @@ oplist(pTHX_ OP *o, SV **SP) XPUSHs(opsv); switch (o->op_type) { case OP_SUBST: -#if PERL_VERSION >= 9 - SP = oplist(aTHX_ cPMOPo->op_pmstashstartu.op_pmreplstart, SP); -#else - SP = oplist(aTHX_ cPMOPo->op_pmreplstart, SP); -#endif + SP = oplist(aTHX_ PMOP_pmreplstart(cPMOPo), SP); continue; case OP_SORT: if (o->op_flags & OPf_STACKED && o->op_flags & OPf_SPECIAL) { @@ -915,7 +916,7 @@ OP_type(o) #if PERL_VERSION >= 9 -U8 +U16 OP_opt(o) B::OP o @@ -937,7 +938,7 @@ OP_private(o) #if PERL_VERSION >= 9 -U8 +U16 OP_spare(o) B::OP o @@ -988,13 +989,6 @@ LISTOP_children(o) OUTPUT: RETVAL -#if PERL_VERSION >= 9 -# define PMOP_pmreplstart(o) o->op_pmstashstartu.op_pmreplstart -#else -# define PMOP_pmreplstart(o) o->op_pmreplstart -# define PMOP_pmpermflags(o) o->op_pmpermflags -# define PMOP_pmdynflags(o) o->op_pmdynflags -#endif #define PMOP_pmnext(o) o->op_pmnext #define PMOP_pmregexp(o) PM_GETRE(o) #ifdef USE_ITHREADS @@ -1201,7 +1195,7 @@ B::OP LOOP_lastop(o) B::LOOP o -#define COP_label(o) o->cop_label +#define COP_label(o) CopLABEL(o) #define COP_stashpv(o) CopSTASHPV(o) #define COP_stash(o) CopSTASH(o) #define COP_file(o) CopFILE(o) @@ -1217,10 +1211,20 @@ LOOP_lastop(o) MODULE = B PACKAGE = B::COP PREFIX = COP_ +#if PERL_VERSION >= 11 + +const char * +COP_label(o) + B::COP o + +#else + char * COP_label(o) B::COP o +#endif + char * COP_stashpv(o) B::COP o