X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp.h;h=463eda7b55491c1a4f1f6600932042fe7528015f;hb=fbf638cb2f3422c34f7602c75927b8364ccf21ee;hp=429ae2cb187b278ea8351a517624b210f6dd16f7;hpb=699a97de988b5b9b54375d79201e72f1c259685c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp.h b/pp.h index 429ae2c..463eda7 100644 --- a/pp.h +++ b/pp.h @@ -59,16 +59,16 @@ Refetch the stack pointer. Used after a callback. See L. STMT_START { \ if (++PL_markstack_ptr == PL_markstack_max) \ markstack_grow(); \ - *PL_markstack_ptr = (p) - PL_stack_base; \ + *PL_markstack_ptr = (I32)((p) - PL_stack_base);\ } STMT_END #define TOPMARK (*PL_markstack_ptr) #define POPMARK (*PL_markstack_ptr--) -#define dSP register SV **sp = PL_stack_sp +#define dSP SV **sp = PL_stack_sp #define djSP dSP #define dMARK register SV **mark = PL_stack_base + POPMARK -#define dORIGMARK const I32 origmark = mark - PL_stack_base +#define dORIGMARK const I32 origmark = (I32)(mark - PL_stack_base) #define ORIGMARK (PL_stack_base + origmark) #define SPAGAIN sp = PL_stack_sp @@ -403,7 +403,7 @@ and C. if ((SvAMAGIC(left)||SvAMAGIC(right))) {\ SV * const tmpsv = amagic_call(left, \ right, \ - meth_enum, \ + (meth_enum), \ (assign)? AMGf_assign: 0); \ if (tmpsv) { \ SPAGAIN; \ @@ -437,7 +437,7 @@ and C. if(0) goto am_again; /* shut up unused warning */ \ am_again: \ if ((SvAMAGIC(arg))&&\ - (tmpsv=AMG_CALLun_var(arg,meth_enum))) {\ + (tmpsv=AMG_CALLun_var(arg,(meth_enum)))) {\ SPAGAIN; if (shift) sp += shift; \ set(tmpsv); ret; } \ } STMT_END @@ -466,6 +466,8 @@ and C. } STMT_END #define tryAMAGICunDEREF(meth) tryAMAGICunW(meth,setAGAIN,0,(void)0) +#define tryAMAGICunDEREF_var(meth_enum) \ + tryAMAGICunW_var(meth_enum,setAGAIN,0,(void)0) #define opASSIGN (PL_op->op_flags & OPf_STACKED) #define SETsv(sv) STMT_START { \