From de4f22084117ab5700e8374e23e3cf00d62b7f48 Mon Sep 17 00:00:00 2001 From: Rafael Garcia-Suarez Date: Fri, 30 Apr 2004 11:32:03 +0000 Subject: Follow-up to previous patch: the mX?PUSH[inup] macros should handle 'set' magic, just like the X?PUSH[inup] counterparts. p4raw-id: //depot/perl@22757 --- pp.h | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'pp.h') diff --git a/pp.h b/pp.h index 7178ae76c7..520f35d501 100644 --- a/pp.h +++ b/pp.h @@ -231,23 +231,23 @@ C, C and C. =for apidoc Am|void|mPUSHp|char* str|STRLEN len Push a string onto the stack. The stack must have room for this element. -The C indicates the length of the string. Does not handle 'set' magic. -Does not use C. See also C, C and C. +The C indicates the length of the string. Handles 'set' magic. Does +not use C. See also C, C and C. =for apidoc Am|void|mPUSHn|NV nv Push a double onto the stack. The stack must have room for this element. -Does not handle 'set' magic. Does not use C. See also C, -C and C. +Handles 'set' magic. Does not use C. See also C, C +and C. =for apidoc Am|void|mPUSHi|IV iv Push an integer onto the stack. The stack must have room for this element. -Does not handle 'set' magic. Does not use C. See also C, -C and C. +Handles 'set' magic. Does not use C. See also C, C +and C. =for apidoc Am|void|mPUSHu|UV uv Push an unsigned integer onto the stack. The stack must have room for this -element. Does not handle 'set' magic. Does not use C. See also -C, C and C. +element. Handles 'set' magic. Does not use C. See also C, +C and C. =for apidoc Am|void|XPUSHmortal Push a new mortal SV onto the stack, extending the stack if necessary. Does @@ -256,23 +256,23 @@ C and C. =for apidoc Am|void|mXPUSHp|char* str|STRLEN len Push a string onto the stack, extending the stack if necessary. The C -indicates the length of the string. Does not handle 'set' magic. Does not -use C. See also C, C and C. +indicates the length of the string. Handles 'set' magic. Does not use +C. See also C, C and C. =for apidoc Am|void|mXPUSHn|NV nv -Push a double onto the stack, extending the stack if necessary. Does not -handle 'set' magic. Does not use C. See also C, C -and C. +Push a double onto the stack, extending the stack if necessary. Handles +'set' magic. Does not use C. See also C, C and +C. =for apidoc Am|void|mXPUSHi|IV iv -Push an integer onto the stack, extending the stack if necessary. Does not -handle 'set' magic. Does not use C. See also C, C -and C. +Push an integer onto the stack, extending the stack if necessary. Handles +'set' magic. Does not use C. See also C, C and +C. =for apidoc Am|void|mXPUSHu|UV uv Push an unsigned integer onto the stack, extending the stack if necessary. -Does not handle 'set' magic. Does not use C. See also C, -C and C. +Handles 'set' magic. Does not use C. See also C, C +and C. =cut */ @@ -304,16 +304,16 @@ C and C. #define XPUSHundef STMT_START { SvOK_off(TARG); XPUSHs(TARG); } STMT_END #define PUSHmortal(s) PUSHs(sv_newmortal()) -#define mPUSHp(p,l) STMT_START { sv_setpvn(PUSHmortal, (p), (l)); } STMT_END -#define mPUSHn(n) STMT_START { sv_setnv(PUSHmortal, (NV)(n)); } STMT_END -#define mPUSHi(i) STMT_START { sv_setiv(PUSHmortal, (IV)(i)); } STMT_END -#define mPUSHu(u) STMT_START { sv_setuv(PUSHmortal, (UV)(u)); } STMT_END +#define mPUSHp(p,l) STMT_START { sv_setpvn_mg(PUSHmortal, (p), (l)); } STMT_END +#define mPUSHn(n) STMT_START { sv_setnv_mg(PUSHmortal, (NV)(n)); } STMT_END +#define mPUSHi(i) STMT_START { sv_setiv_mg(PUSHmortal, (IV)(i)); } STMT_END +#define mPUSHu(u) STMT_START { sv_setuv_mg(PUSHmortal, (UV)(u)); } STMT_END #define XPUSHmortal(s) STMT_START { EXTEND(sp,1); PUSHmortal; } STMT_END -#define mXPUSHp(p,l) STMT_START { sv_setpvn(XPUSHmortal, (p), (l)); } STMT_END -#define mXPUSHn(n) STMT_START { sv_setnv(XPUSHmortal, (NV)(n)); } STMT_END -#define mXPUSHi(i) STMT_START { sv_setiv(XPUSHmortal, (IV)(i)); } STMT_END -#define mXPUSHu(u) STMT_START { sv_setuv(XPUSHmortal, (UV)(u)); } STMT_END +#define mXPUSHp(p,l) STMT_START { sv_setpvn_mg(XPUSHmortal, (p), (l)); } STMT_END +#define mXPUSHn(n) STMT_START { sv_setnv_mg(XPUSHmortal, (NV)(n)); } STMT_END +#define mXPUSHi(i) STMT_START { sv_setiv_mg(XPUSHmortal, (IV)(i)); } STMT_END +#define mXPUSHu(u) STMT_START { sv_setuv_mg(XPUSHmortal, (UV)(u)); } STMT_END #define SETs(s) (*sp = s) #define SETTARG STMT_START { SvSETMAGIC(TARG); SETs(TARG); } STMT_END -- cgit v1.2.1