X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=XSUB.h;h=ae746a692525ff0ed6832181fe75db688d3de8af;hb=54e82ce5cfd72fcdc60806373e0c4d6890b68a3c;hp=03892019fb571722a1f4d4cf0c986aef7edcb810;hpb=873b149f049701f76396c28e70d7cccfec0b011f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/XSUB.h b/XSUB.h index 0389201..ae746a6 100644 --- a/XSUB.h +++ b/XSUB.h @@ -1,3 +1,6 @@ +#ifndef _INC_PERL_XSUB_H +#define _INC_PERL_XSUB_H 1 + #define ST(off) PL_stack_base[ax + (off)] #if defined(CYGWIN) && defined(USE_DYNAMIC_LOADING) @@ -11,6 +14,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 @@ -115,17 +121,14 @@ # 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 @@ -200,7 +203,7 @@ # define read PerlLIO_read # define rename PerlLIO_rename # define setmode PerlLIO_setmode -# define stat PerlLIO_stat +# define stat(buf,sb) PerlLIO_stat(buf,sb) # define tmpnam PerlLIO_tmpnam # define umask PerlLIO_umask # define unlink PerlLIO_unlink @@ -279,3 +282,5 @@ # define socketpair PerlSock_socketpair # endif /* NO_XSLOCKS */ #endif /* PERL_CAPI */ + +#endif /* _INC_PERL_XSUB_H */ /* include guard */