Re-integrate mainline
[p5sagit/p5-mst-13.2.git] / XSUB.h
diff --git a/XSUB.h b/XSUB.h
index 0389201..509a1d6 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -11,6 +11,9 @@
        I32 ax = mark - PL_stack_base + 1;      \
        I32 items = sp - mark
 
+#define dXSTARG SV * targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
+                            ? PAD_SV(PL_op->op_targ) : sv_newmortal())
+
 #define XSANY CvXSUBANY(cv)
 
 #define dXSI32 I32 ix = XSANY.any_i32
 #  include "objXSUB.h"
 #endif /* PERL_OBJECT || PERL_CAPI */
 
-#if defined(PERL_CAPI)
+#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE)
 #  undef aTHX
 #  undef aTHX_
-#  undef _aTHX
-#  if defined(PERL_NO_GET_CONTEXT)
-#    define aTHX        my_perl
-#  else
-#    define aTHX        PERL_GET_INTERP
-#  endif /* PERL_NO_GET_CONTEXT */
-#  define aTHX_        aTHX,
-#  define _aTHX        ,aTHX
+#  define aTHX         PERL_GET_THX
+#  define aTHX_                aTHX,
+#endif
+
+#if defined(PERL_CAPI)
 #  ifndef NO_XSLOCKS
 #    undef closedir
 #    undef opendir