# define SvREFCNT_inc_simple_NN SvREFCNT_inc
#endif
-#ifndef ENTER_with_name
-# define ENTER_with_name(N) ENTER
+#undef ENTERn
+#if defined(ENTER_with_name) && !LT_HAS_PERL(5, 11, 4)
+# define ENTERn(N) ENTER_with_name(N)
+#else
+# define ENTERn(N) ENTER
#endif
-#ifndef LEAVE_with_name
-# define LEAVE_with_name(N) LEAVE
+#undef LEAVEn
+#if defined(LEAVE_with_name) && !LT_HAS_PERL(5, 11, 4)
+# define LEAVEn(N) LEAVE_with_name(N)
+#else
+# define LEAVEn(N) LEAVE
#endif
/* ... Thread safety and multiplicity ...................................... */
SV *type_pkg;
SV *type_meth;
#endif /* !MULTIPLICITY */
- OP *(*pp_padsv)(pTHX);
+ OP *(*old_pp_padsv)(pTHX);
} lt_op_info;
-STATIC void lt_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV *type_meth, OP *(*pp_padsv)(pTHX)) {
+STATIC void lt_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV *type_meth, OP *(*old_pp_padsv)(pTHX)) {
#define lt_map_store(O, OP, TP, TM, PP) lt_map_store(aTHX_ (O), (OP), (TP), (TM), (PP))
lt_op_info *oi;
oi->type_meth = type_meth;
#endif /* !MULTIPLICITY */
- oi->pp_padsv = pp_padsv;
+ oi->old_pp_padsv = old_pp_padsv;
#ifdef USE_ITHREADS
MUTEX_UNLOCK(<_op_map_mutex);
LEAVE;
}
- return CALL_FPTR(oi.pp_padsv)(aTHX);
+ return CALL_FPTR(oi.old_pp_padsv)(aTHX);
}
return CALL_FPTR(PL_ppaddr[OP_PADSV])(aTHX);
lt_initialized = 0;
}
-STATIC lt_setup(pTHX) {
+STATIC void lt_setup(pTHX) {
#define lt_setup() lt_setup(aTHX)
if (lt_initialized)
return;
- MY_CXT_INIT;
+ {
+ MY_CXT_INIT;
#if LT_THREADSAFE
- MY_CXT.tbl = ptable_new();
- MY_CXT.owner = aTHX;
+ MY_CXT.tbl = ptable_new();
+ MY_CXT.owner = aTHX;
#endif
- MY_CXT.pp_padsv_saved = 0;
- MY_CXT.default_meth = newSVpvn("TYPEDSCALAR", 11);
- SvREADONLY_on(MY_CXT.default_meth);
+ MY_CXT.pp_padsv_saved = 0;
+ MY_CXT.default_meth = newSVpvn("TYPEDSCALAR", 11);
+ SvREADONLY_on(MY_CXT.default_meth);
+ }
lt_old_ck_padany = PL_check[OP_PADANY];
PL_check[OP_PADANY] = MEMBER_TO_FPTR(lt_ck_padany);
PROTOTYPES: ENABLE
-BOOT:
-{
+BOOT:
+{
if (!lt_booted++) {
HV *stash;
ptable *t;
int *level;
SV *cloned_default_meth;
-CODE:
+PPCODE:
{
my_cxt_t ud;
dMY_CXT;
{
level = PerlMemShared_malloc(sizeof *level);
*level = 1;
- LEAVE_with_name("sub");
+ LEAVEn("sub");
SAVEDESTRUCTOR_X(lt_thread_cleanup, level);
- ENTER_with_name("sub");
+ ENTERn("sub");
}
+ XSRETURN(0);
#endif