X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Types.xs;h=882deae82327fdd9feb2672b71a6f5238c3ce5c3;hb=4827778f0445d5d7a4a4612f8c72af3eaba7517d;hp=0cff8fa6e90a930d94f37208b13c9859c4cd1742;hpb=881d1aecb5e9948bbd7a384deffbab560eab4ef4;p=perl%2Fmodules%2FLexical-Types.git diff --git a/Types.xs b/Types.xs index 0cff8fa..882deae 100644 --- a/Types.xs +++ b/Types.xs @@ -39,8 +39,12 @@ # define HvNAMELEN_get(H) strlen(HvNAME_get(H)) #endif -#ifndef OP_SIBLING -# define OP_SIBLING(O) ((O)->op_sibling) +#ifndef OpSIBLING +# ifdef OP_SIBLING +# define OpSIBLING(O) OP_SIBLING(O) +# else +# define OpSIBLING(O) ((O)->op_sibling) +# endif #endif #ifndef SvREFCNT_inc_simple_void_NN @@ -113,7 +117,7 @@ typedef OP *(*lt_ck_t)(pTHX_ OP *); #else -STATIC void lt_ck_replace(pTHX_ OPCODE type, lt_ck_t new_ck, lt_ck_t *old_ck_p){ +static void lt_ck_replace(pTHX_ OPCODE type, lt_ck_t new_ck, lt_ck_t *old_ck_p){ #define lt_ck_replace(T, NC, OCP) lt_ck_replace(aTHX_ (T), (NC), (OCP)) LT_CHECK_MUTEX_LOCK; if (!*old_ck_p) { @@ -125,7 +129,7 @@ STATIC void lt_ck_replace(pTHX_ OPCODE type, lt_ck_t new_ck, lt_ck_t *old_ck_p){ #endif -STATIC void lt_ck_restore(pTHX_ OPCODE type, lt_ck_t *old_ck_p) { +static void lt_ck_restore(pTHX_ OPCODE type, lt_ck_t *old_ck_p) { #define lt_ck_restore(T, OCP) lt_ck_restore(aTHX_ (T), (OCP)) LT_CHECK_MUTEX_LOCK; if (*old_ck_p) { @@ -241,7 +245,7 @@ typedef struct { # define lt_dup_inc(S, U) SvREFCNT_inc(sv_dup((S), &((U)->params))) #endif -STATIC void lt_ptable_clone(pTHX_ ptable_ent *ent, void *ud_) { +static void lt_ptable_clone(pTHX_ ptable_ent *ent, void *ud_) { lt_ptable_clone_ud *ud = ud_; lt_hint_t *h1 = ent->val; lt_hint_t *h2; @@ -263,7 +267,7 @@ STATIC void lt_ptable_clone(pTHX_ ptable_ent *ent, void *ud_) { ptable_hints_store(ud->tbl, ent->key, h2); } -STATIC void lt_thread_cleanup(pTHX_ void *ud) { +static void lt_thread_cleanup(pTHX_ void *ud) { dMY_CXT; ptable_hints_free(MY_CXT.tbl); @@ -274,13 +278,13 @@ STATIC void lt_thread_cleanup(pTHX_ void *ud) { MY_CXT.default_meth = NULL; } -STATIC int lt_endav_free(pTHX_ SV *sv, MAGIC *mg) { +static int lt_endav_free(pTHX_ SV *sv, MAGIC *mg) { SAVEDESTRUCTOR_X(lt_thread_cleanup, NULL); return 0; } -STATIC MGVTBL lt_endav_vtbl = { +static MGVTBL lt_endav_vtbl = { 0, 0, 0, @@ -303,7 +307,7 @@ STATIC MGVTBL lt_endav_vtbl = { #if LT_WORKAROUND_REQUIRE_PROPAGATION -STATIC IV lt_require_tag(pTHX) { +static IV lt_require_tag(pTHX) { #define lt_require_tag() lt_require_tag(aTHX) const CV *cv, *outside; @@ -349,7 +353,7 @@ get_enclosing_cv: #endif /* LT_WORKAROUND_REQUIRE_PROPAGATION */ -STATIC SV *lt_tag(pTHX_ SV *value) { +static SV *lt_tag(pTHX_ SV *value) { #define lt_tag(V) lt_tag(aTHX_ (V)) lt_hint_t *h; SV *code = NULL; @@ -388,7 +392,7 @@ STATIC SV *lt_tag(pTHX_ SV *value) { return newSViv(PTR2IV(h)); } -STATIC SV *lt_detag(pTHX_ const SV *hint) { +static SV *lt_detag(pTHX_ const SV *hint) { #define lt_detag(H) lt_detag(aTHX_ (H)) lt_hint_t *h; #if LT_THREADSAFE @@ -413,9 +417,9 @@ STATIC SV *lt_detag(pTHX_ const SV *hint) { return LT_HINT_CODE(h); } -STATIC U32 lt_hash = 0; +static U32 lt_hash = 0; -STATIC SV *lt_hint(pTHX) { +static SV *lt_hint(pTHX) { #define lt_hint() lt_hint(aTHX) SV *hint; #ifdef cop_hints_fetch_pvn @@ -448,7 +452,7 @@ STATIC SV *lt_hint(pTHX) { #ifdef USE_ITHREADS -STATIC perl_mutex lt_op_map_mutex; +static perl_mutex lt_op_map_mutex; #define LT_LOCK(M) MUTEX_LOCK(M) #define LT_UNLOCK(M) MUTEX_UNLOCK(M) @@ -460,7 +464,7 @@ STATIC perl_mutex lt_op_map_mutex; #endif /* !USE_ITHREADS */ -STATIC ptable *lt_op_padxv_map = NULL; +static ptable *lt_op_padxv_map = NULL; typedef struct { OP *(*old_pp)(pTHX); @@ -474,7 +478,7 @@ typedef struct { #endif /* !MULTIPLICITY */ } lt_op_padxv_info; -STATIC void lt_op_padxv_info_call(pTHX_ const lt_op_padxv_info *oi, SV *sv) { +static void lt_op_padxv_info_call(pTHX_ const lt_op_padxv_info *oi, SV *sv) { #define lt_op_padxv_info_call(O, S) lt_op_padxv_info_call(aTHX_ (O), (S)) SV *orig_pkg, *type_pkg, *type_meth; int items; @@ -529,7 +533,7 @@ STATIC void lt_op_padxv_info_call(pTHX_ const lt_op_padxv_info *oi, SV *sv) { return; } -STATIC void lt_padxv_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV *type_meth, OP *(*old_pp)(pTHX)) { +static void lt_padxv_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV *type_meth, OP *(*old_pp)(pTHX)) { #define lt_padxv_map_store(O, OP, TP, TM, PP) lt_padxv_map_store(aTHX_ (O), (OP), (TP), (TM), (PP)) lt_op_padxv_info *oi; @@ -585,7 +589,7 @@ STATIC void lt_padxv_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV LT_UNLOCK(<_op_map_mutex); } -STATIC const lt_op_padxv_info *lt_padxv_map_fetch(const OP *o, lt_op_padxv_info *oi) { +static const lt_op_padxv_info *lt_padxv_map_fetch(const OP *o, lt_op_padxv_info *oi) { const lt_op_padxv_info *val; LT_LOCK(<_op_map_mutex); @@ -603,14 +607,14 @@ STATIC const lt_op_padxv_info *lt_padxv_map_fetch(const OP *o, lt_op_padxv_info #if LT_HAS_PERL(5, 17, 6) -STATIC ptable *lt_op_padrange_map = NULL; +static ptable *lt_op_padrange_map = NULL; typedef struct { OP *(*old_pp)(pTHX); const OP *padxv_start; } lt_op_padrange_info; -STATIC void lt_padrange_map_store(pTHX_ const OP *o, const OP *s, OP *(*old_pp)(pTHX)) { +static void lt_padrange_map_store(pTHX_ const OP *o, const OP *s, OP *(*old_pp)(pTHX)) { #define lt_padrange_map_store(O, S, PP) lt_padrange_map_store(aTHX_ (O), (S), (PP)) lt_op_padrange_info *oi; @@ -627,7 +631,7 @@ STATIC void lt_padrange_map_store(pTHX_ const OP *o, const OP *s, OP *(*old_pp)( LT_UNLOCK(<_op_map_mutex); } -STATIC const lt_op_padrange_info *lt_padrange_map_fetch(const OP *o, lt_op_padrange_info *oi) { +static const lt_op_padrange_info *lt_padrange_map_fetch(const OP *o, lt_op_padrange_info *oi) { const lt_op_padrange_info *val; LT_LOCK(<_op_map_mutex); @@ -645,7 +649,7 @@ STATIC const lt_op_padrange_info *lt_padrange_map_fetch(const OP *o, lt_op_padra #endif -STATIC void lt_map_delete(pTHX_ const OP *o) { +static void lt_map_delete(pTHX_ const OP *o) { #define lt_map_delete(O) lt_map_delete(aTHX_ (O)) LT_LOCK(<_op_map_mutex); @@ -661,7 +665,7 @@ STATIC void lt_map_delete(pTHX_ const OP *o) { /* ... Our pp_padsv ........................................................ */ -STATIC OP *lt_pp_padsv(pTHX) { +static OP *lt_pp_padsv(pTHX) { lt_op_padxv_info oi; if (lt_padxv_map_fetch(PL_op, &oi)) { @@ -677,7 +681,7 @@ STATIC OP *lt_pp_padsv(pTHX) { #if LT_HAS_PERL(5, 17, 6) -STATIC OP *lt_pp_padrange(pTHX) { +static OP *lt_pp_padrange(pTHX) { lt_op_padrange_info roi; if (lt_padrange_map_fetch(PL_op, &roi)) { @@ -710,9 +714,9 @@ STATIC OP *lt_pp_padrange(pTHX) { * the op entry in the op map in the padany check function, and we set their * op_ppaddr member in our peephole optimizer replacement below. */ -STATIC OP *(*lt_old_ck_padany)(pTHX_ OP *) = 0; +static OP *(*lt_old_ck_padany)(pTHX_ OP *) = 0; -STATIC OP *lt_ck_padany(pTHX_ OP *o) { +static OP *lt_ck_padany(pTHX_ OP *o) { HV *stash; SV *code; @@ -789,9 +793,9 @@ skip: return o; } -STATIC OP *(*lt_old_ck_padsv)(pTHX_ OP *) = 0; +static OP *(*lt_old_ck_padsv)(pTHX_ OP *) = 0; -STATIC OP *lt_ck_padsv(pTHX_ OP *o) { +static OP *lt_ck_padsv(pTHX_ OP *o) { lt_map_delete(o); return lt_old_ck_padsv(aTHX_ o); @@ -801,7 +805,7 @@ STATIC OP *lt_ck_padsv(pTHX_ OP *o) { #if LT_HAS_PERL(5, 17, 6) -STATIC int lt_maybe_padrange_setup(pTHX_ OP *o, const OP *start) { +static int lt_maybe_padrange_setup(pTHX_ OP *o, const OP *start) { #define lt_maybe_padrange_setup(O, S) lt_maybe_padrange_setup(aTHX_ (O), (S)) PADOFFSET i, count; const OP *p; @@ -830,9 +834,9 @@ STATIC int lt_maybe_padrange_setup(pTHX_ OP *o, const OP *start) { #endif -STATIC peep_t lt_old_peep = 0; /* This is actually the rpeep past 5.13.5 */ +static peep_t lt_old_peep = 0; /* This is actually the rpeep past 5.13.5 */ -STATIC void lt_peep_rec(pTHX_ OP *o, ptable *seen) { +static void lt_peep_rec(pTHX_ OP *o, ptable *seen) { #define lt_peep_rec(O) lt_peep_rec(aTHX_ (O), seen) for (; o; o = o->op_next) { if (ptable_fetch(seen, o)) @@ -862,11 +866,11 @@ STATIC void lt_peep_rec(pTHX_ OP *o, ptable *seen) { * Moreover, for non-special padrange ops (i.e. that aren't for * my (...) = @_), the first original padxv is its sibling or nephew. */ - OP *kid = OP_SIBLING(o); + OP *kid = OpSIBLING(o); if (kid->op_type == OP_NULL && kid->op_flags & OPf_KIDS) { kid = kUNOP->op_first; if (kid->op_type == OP_NULL) - kid = OP_SIBLING(kid); + kid = OpSIBLING(kid); } lt_maybe_padrange_setup(o, kid); } @@ -881,7 +885,7 @@ STATIC void lt_peep_rec(pTHX_ OP *o, ptable *seen) { && op->op_flags & OPf_SPECIAL) { const OP *start = cUNOPx(cBINOPo->op_last)->op_first; if (start->op_type == OP_PUSHMARK) - start = OP_SIBLING(start); + start = OpSIBLING(start); lt_maybe_padrange_setup(op, start); } break; @@ -927,7 +931,7 @@ STATIC void lt_peep_rec(pTHX_ OP *o, ptable *seen) { } } -STATIC void lt_peep(pTHX_ OP *o) { +static void lt_peep(pTHX_ OP *o) { dMY_CXT; ptable *seen = MY_CXT.seen; @@ -943,9 +947,9 @@ STATIC void lt_peep(pTHX_ OP *o) { /* --- Interpreter setup/teardown ------------------------------------------ */ -STATIC U32 lt_initialized = 0; +static U32 lt_initialized = 0; -STATIC void lt_teardown(pTHX_ void *root) { +static void lt_teardown(pTHX_ void *root) { if (!lt_initialized) return; @@ -979,7 +983,7 @@ STATIC void lt_teardown(pTHX_ void *root) { lt_initialized = 0; } -STATIC void lt_setup(pTHX) { +static void lt_setup(pTHX) { #define lt_setup() lt_setup(aTHX) if (lt_initialized) return; @@ -1015,7 +1019,7 @@ STATIC void lt_setup(pTHX) { lt_initialized = 1; } -STATIC U32 lt_booted = 0; +static U32 lt_booted = 0; /* --- XS ------------------------------------------------------------------ */