diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2005-07-01 15:40:40 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2005-07-01 15:40:40 +0000 |
commit | fd617465265ed0cd97256c819ae8e3e4cde70989 (patch) | |
tree | 5fa796d09f8279cd6ba1d45cb2f7e0335a6c0ce1 | |
parent | d951c35852a72e504eea00883fb91f69a81b8ce3 (diff) | |
download | perl-fd617465265ed0cd97256c819ae8e3e4cde70989.tar.gz |
the PAD_SET_CUR macro expanded too much for AIX compilers
p4raw-id: //depot/perl@25042
-rw-r--r-- | pad.h | 7 | ||||
-rw-r--r-- | pp_ctl.c | 6 | ||||
-rw-r--r-- | pp_sort.c | 3 | ||||
-rw-r--r-- | pp_sys.c | 3 |
4 files changed, 14 insertions, 5 deletions
@@ -103,7 +103,12 @@ Get the value from slot C<po> in the base (DEPTH=1) pad of a padlist =for apidoc m|void|PAD_SET_CUR |PADLIST padlist|I32 n Set the current pad to be pad C<n> in the padlist, saving -the previous current pad. +the previous current pad. NB currently this macro expands to a string too +long for some compilers, so it's best to replace it with + + SAVECOMPPAD(); + PAD_SET_CUR_NOSAVE(padlist,n); + =for apidoc m|void|PAD_SET_CUR_NOSAVE |PADLIST padlist|I32 n like PAD_SET_CUR, but without the save @@ -1778,7 +1778,8 @@ PP(pp_dbstate) PUSHSUB_DB(cx); cx->blk_sub.retop = PL_op->op_next; CvDEPTH(cv)++; - PAD_SET_CUR(CvPADLIST(cv),1); + SAVECOMPPAD(); + PAD_SET_CUR_NOSAVE(CvPADLIST(cv), 1); RETURNOP(CvSTART(cv)); } else @@ -2417,7 +2418,8 @@ PP(pp_goto) sub_crush_depth(cv); pad_push(padlist, CvDEPTH(cv)); } - PAD_SET_CUR(padlist, CvDEPTH(cv)); + SAVECOMPPAD(); + PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); if (cx->blk_sub.hasargs) { AV* av = (AV*)PAD_SVl(0); @@ -1544,7 +1544,8 @@ PP(pp_sort) SAVEVPTR(CvROOT(cv)->op_ppaddr); CvROOT(cv)->op_ppaddr = PL_ppaddr[OP_NULL]; - PAD_SET_CUR(CvPADLIST(cv), 1); + SAVECOMPPAD(); + PAD_SET_CUR_NOSAVE(CvPADLIST(cv), 1); } } } @@ -1270,7 +1270,8 @@ S_doform(pTHX_ CV *cv, GV *gv, OP *retop) PUSHBLOCK(cx, CXt_FORMAT, PL_stack_sp); PUSHFORMAT(cx); cx->blk_sub.retop = retop; - PAD_SET_CUR(CvPADLIST(cv), 1); + SAVECOMPPAD(); + PAD_SET_CUR_NOSAVE(CvPADLIST(cv), 1); setdefout(gv); /* locally select filehandle so $% et al work */ return CvSTART(cv); |