diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2004-04-30 11:32:03 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2004-04-30 11:32:03 +0000 |
commit | de4f22084117ab5700e8374e23e3cf00d62b7f48 (patch) | |
tree | b398cce1f250786640f14673f234fa99dddedcf8 /pp.h | |
parent | d82b684cd82be03d9cc38309478c329f914280b5 (diff) | |
download | perl-de4f22084117ab5700e8374e23e3cf00d62b7f48.tar.gz |
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
Diffstat (limited to 'pp.h')
-rw-r--r-- | pp.h | 52 |
1 files changed, 26 insertions, 26 deletions
@@ -231,23 +231,23 @@ C<PUSHs>, C<XPUSHmortal> and C<XPUSHs>. =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<len> indicates the length of the string. Does not handle 'set' magic. -Does not use C<TARG>. See also C<PUSHp>, C<mXPUSHp> and C<XPUSHp>. +The C<len> indicates the length of the string. Handles 'set' magic. Does +not use C<TARG>. See also C<PUSHp>, C<mXPUSHp> and C<XPUSHp>. =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<TARG>. See also C<PUSHn>, -C<mXPUSHn> and C<XPUSHn>. +Handles 'set' magic. Does not use C<TARG>. See also C<PUSHn>, C<mXPUSHn> +and C<XPUSHn>. =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<TARG>. See also C<PUSHi>, -C<mXPUSHi> and C<XPUSHi>. +Handles 'set' magic. Does not use C<TARG>. See also C<PUSHi>, C<mXPUSHi> +and C<XPUSHi>. =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<TARG>. See also -C<PUSHu>, C<mXPUSHu> and C<XPUSHu>. +element. Handles 'set' magic. Does not use C<TARG>. See also C<PUSHu>, +C<mXPUSHu> and C<XPUSHu>. =for apidoc Am|void|XPUSHmortal Push a new mortal SV onto the stack, extending the stack if necessary. Does @@ -256,23 +256,23 @@ C<PUSHmortal> and C<PUSHs>. =for apidoc Am|void|mXPUSHp|char* str|STRLEN len Push a string onto the stack, extending the stack if necessary. The C<len> -indicates the length of the string. Does not handle 'set' magic. Does not -use C<TARG>. See also C<XPUSHp>, C<mPUSHp> and C<PUSHp>. +indicates the length of the string. Handles 'set' magic. Does not use +C<TARG>. See also C<XPUSHp>, C<mPUSHp> and C<PUSHp>. =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<TARG>. See also C<XPUSHn>, C<mPUSHn> -and C<PUSHn>. +Push a double onto the stack, extending the stack if necessary. Handles +'set' magic. Does not use C<TARG>. See also C<XPUSHn>, C<mPUSHn> and +C<PUSHn>. =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<TARG>. See also C<XPUSHi>, C<mPUSHi> -and C<PUSHi>. +Push an integer onto the stack, extending the stack if necessary. Handles +'set' magic. Does not use C<TARG>. See also C<XPUSHi>, C<mPUSHi> and +C<PUSHi>. =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<TARG>. See also C<XPUSHu>, -C<mPUSHu> and C<PUSHu>. +Handles 'set' magic. Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> +and C<PUSHu>. =cut */ @@ -304,16 +304,16 @@ C<mPUSHu> and C<PUSHu>. #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 |