-/* --- Compatibility wrappers ---------------------------------------------- */
-
-#define LT_HAS_PERL(R, V, S) (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S))))))
-
-#if LT_HAS_PERL(5, 10, 0) || defined(PL_parser)
-# ifndef PL_in_my_stash
-# define PL_in_my_stash PL_parser->in_my_stash
-# endif
-#else
-# ifndef PL_in_my_stash
-# define PL_in_my_stash PL_Iin_my_stash
-# endif
-#endif
-
-#ifndef LT_WORKAROUND_REQUIRE_PROPAGATION
-# define LT_WORKAROUND_REQUIRE_PROPAGATION !LT_HAS_PERL(5, 10, 1)
-#endif
-
-#ifndef HvNAME_get
-# define HvNAME_get(H) HvNAME(H)
-#endif
-
-#ifndef HvNAMELEN_get
-# define HvNAMELEN_get(H) strlen(HvNAME_get(H))
-#endif
-
-#ifndef SvIS_FREED
-# define SvIS_FREED(sv) ((sv)->sv_flags == SVTYPEMASK)
-#endif
-
-/* ... Thread safety and multiplicity ...................................... */
-
-#ifndef LT_MULTIPLICITY
-# if defined(MULTIPLICITY) || defined(PERL_IMPLICIT_CONTEXT)
-# define LT_MULTIPLICITY 1
-# else
-# define LT_MULTIPLICITY 0
-# endif
-#endif
-#if LT_MULTIPLICITY && !defined(tTHX)
-# define tTHX PerlInterpreter*
-#endif
-
-#if LT_MULTIPLICITY && defined(USE_ITHREADS) && defined(dMY_CXT) && defined(MY_CXT) && defined(START_MY_CXT) && defined(MY_CXT_INIT) && (defined(MY_CXT_CLONE) || defined(dMY_CXT_SV))
-# define LT_THREADSAFE 1
-# ifndef MY_CXT_CLONE
-# define MY_CXT_CLONE \
- dMY_CXT_SV; \
- my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1)); \
- Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t); \
- sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
-# endif
-#else
-# define LT_THREADSAFE 0
-# undef dMY_CXT
-# define dMY_CXT dNOOP
-# undef MY_CXT
-# define MY_CXT lt_globaldata
-# undef START_MY_CXT
-# define START_MY_CXT STATIC my_cxt_t MY_CXT;
-# undef MY_CXT_INIT
-# define MY_CXT_INIT NOOP
-# undef MY_CXT_CLONE
-# define MY_CXT_CLONE NOOP
-# undef pMY_CXT
-# define pMY_CXT
-# undef pMY_CXT_
-# define pMY_CXT_
-# undef aMY_CXT
-# define aMY_CXT
-# undef aMY_CXT_
-# define aMY_CXT_
-#endif
-
-/* --- Helpers ------------------------------------------------------------- */
-
-/* ... Thread-safe hints ................................................... */
-
-/* If any of those is true, we need to store the hint in a global table. */
-
-#if LT_THREADSAFE || LT_WORKAROUND_REQUIRE_PROPAGATION
-
-typedef struct {
- SV *code;
-#if LT_WORKAROUND_REQUIRE_PROPAGATION
- UV requires;
-#endif
-} lt_hint_t;
-
-#define PTABLE_NAME ptable_hints
-#define PTABLE_VAL_FREE(V) { lt_hint_t *h = (V); SvREFCNT_dec(h->code); PerlMemShared_free(h); }