X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/10cca365fcca0349c1d46c3a7ac05f425585739f..4f5966a561ad8242e6491bc4847b6a3a66093030:/pp.h?ds=sidebyside diff --git a/pp.h b/pp.h index aaadd40..93aeb91 100644 --- a/pp.h +++ b/pp.h @@ -277,9 +277,8 @@ Does not use C. See also C, C and C. =cut */ -#define EXTEND(p,n) STMT_START { if (PL_stack_max - p < (int)(n)) { \ - sp = stack_grow(sp,p, (int) (n)); \ - } } STMT_END +#define EXTEND(p,n) (void)(PL_stack_max - p < (int)(n) && \ + (sp = stack_grow(sp,p, (int) (n)))) /* Same thing, but update mark register too. */ #define MEXTEND(p,n) STMT_START {if (PL_stack_max - p < (int)(n)) { \ @@ -295,7 +294,7 @@ Does not use C. See also C, C and C. #define PUSHi(i) STMT_START { sv_setiv(TARG, (IV)(i)); PUSHTARG; } STMT_END #define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END -#define XPUSHs(s) STMT_START { EXTEND(sp,1); (*++sp = (s)); } STMT_END +#define XPUSHs(s) (EXTEND(sp,1), *++sp = (s)) #define XPUSHTARG STMT_START { SvSETMAGIC(TARG); XPUSHs(TARG); } STMT_END #define XPUSHp(p,l) STMT_START { sv_setpvn(TARG, (p), (l)); XPUSHTARG; } STMT_END #define XPUSHn(n) STMT_START { sv_setnv(TARG, (NV)(n)); XPUSHTARG; } STMT_END @@ -345,7 +344,7 @@ Does not use C. See also C, C and C. #define dPOPXiirl(X) IV right = POPi; IV left = CAT2(X,i) #define USE_LEFT(sv) \ - (SvOK(sv) || SvGMAGICAL(sv) || !(PL_op->op_flags & OPf_STACKED)) + (SvOK(sv) || !(PL_op->op_flags & OPf_STACKED)) #define dPOPXiirl_ul_nomg(X) \ IV right = (sp--, SvIV_nomg(TOPp1s)); \ SV *leftsv = CAT2(X,s); \ @@ -476,8 +475,8 @@ True if this op will be the return value of an lvalue subroutine #define SvCANEXISTDELETE(sv) \ (!SvRMAGICAL(sv) \ - || ((mg = mg_find((const SV *) sv, PERL_MAGIC_tied)) \ - && (stash = SvSTASH(SvRV(SvTIED_obj(MUTABLE_SV(sv), mg)))) \ + || !(mg = mg_find((const SV *) sv, PERL_MAGIC_tied)) \ + || ( (stash = SvSTASH(SvRV(SvTIED_obj(MUTABLE_SV(sv), mg)))) \ && gv_fetchmethod_autoload(stash, "EXISTS", TRUE) \ && gv_fetchmethod_autoload(stash, "DELETE", TRUE) \ ) \ @@ -497,7 +496,7 @@ True if this op will be the return value of an lvalue subroutine ( \ (void)(phlags & SV_GMAGIC && (SvGETMAGIC(sv),0)), \ isGV_with_GP(sv) \ - ? (GV *)sv \ + ? (GV *)(sv) \ : SvROK(sv) && SvTYPE(SvRV(sv)) <= SVt_PVLV && \ (SvGETMAGIC(SvRV(sv)), isGV_with_GP(SvRV(sv))) \ ? (GV *)SvRV(sv) \ @@ -512,8 +511,8 @@ True if this op will be the return value of an lvalue subroutine * Local variables: * c-indentation-style: bsd * c-basic-offset: 4 - * indent-tabs-mode: t + * indent-tabs-mode: nil * End: * - * ex: set ts=8 sts=4 sw=4 noet: + * ex: set ts=8 sts=4 sw=4 et: */