X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp.h;h=21d3c9d8679e1214df0f5843d35a951251d3f64f;hb=4df4e287246babaf287cf6336ca862ceeead8e46;hp=d5e3bf9277dc6b11704fe55c5c937dabea4f4220;hpb=1b6737cc10a847650f574c35f419cbd680a5a5ef;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp.h b/pp.h index d5e3bf9..21d3c9d 100644 --- a/pp.h +++ b/pp.h @@ -87,7 +87,6 @@ Refetch the stack pointer. Used after a callback. See L. #define NORMAL PL_op->op_next #define DIE return Perl_die -#define DIE_NULL return DieNull /* =for apidoc Ams||PUTBACK @@ -398,23 +397,29 @@ and C. #define AMGf_assign 4 #define AMGf_unary 8 -#define tryAMAGICbinW(meth,assign,set) STMT_START { \ +#define tryAMAGICbinW_var(meth_enum,assign,set) STMT_START { \ if (PL_amagic_generation) { \ SV* tmpsv; \ SV* const right= *(sp); SV* const left= *(sp-1);\ if ((SvAMAGIC(left)||SvAMAGIC(right))&&\ (tmpsv=amagic_call(left, \ right, \ - CAT2(meth,_amg), \ + meth_enum, \ (assign)? AMGf_assign: 0))) {\ SPAGAIN; \ (void)POPs; set(tmpsv); RETURN; } \ } \ } STMT_END +#define tryAMAGICbinW(meth,assign,set) \ + tryAMAGICbinW_var(CAT2(meth,_amg),assign,set) + #define tryAMAGICbin(meth,assign) tryAMAGICbinW(meth,assign,SETsv) #define tryAMAGICbinSET(meth,assign) tryAMAGICbinW(meth,assign,SETs) +#define tryAMAGICbinSET_var(meth_enum,assign) \ + tryAMAGICbinW_var(meth_enum,assign,SETs) + #define AMG_CALLun(sv,meth) amagic_call(sv,&PL_sv_undef, \ CAT2(meth,_amg),AMGf_noright | AMGf_unary) #define AMG_CALLbinL(left,right,meth) \