diff options
author | Andy Lester <andy@petdance.com> | 2006-05-02 08:38:15 -0500 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2006-05-03 08:57:45 +0000 |
commit | 294b3b3940051144b7e617afd7d93672b0fc2dfd (patch) | |
tree | a5b284cd86bff120284a6b66255a4971dc917c2c | |
parent | 9a206dfdc969fdaf131056ef8a692a173aecaea4 (diff) | |
download | perl-294b3b3940051144b7e617afd7d93672b0fc2dfd.tar.gz |
clean up loops in doio.c and dump.c
Message-ID: <20060502183815.GA7979@petdance.com>
p4raw-id: //depot/perl@28077
-rw-r--r-- | doio.c | 33 | ||||
-rw-r--r-- | dump.c | 38 | ||||
-rw-r--r-- | embed.fnc | 1 | ||||
-rw-r--r-- | embed.h | 2 | ||||
-rw-r--r-- | proto.h | 1 |
5 files changed, 44 insertions, 31 deletions
@@ -195,7 +195,8 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw, SAVEFREEPV(type); /* Lose leading and trailing white space */ - for (; isSPACE(*type); type++) ; + while (isSPACE(*type)) + type++; while (tend > type && isSPACE(tend[-1])) *--tend = '\0'; @@ -234,7 +235,9 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw, } type++; } - for (type++; isSPACE(*type); type++) ; + do { + type++; + } while (isSPACE(*type)); if (!num_svs) { name = type; len = tend-type; @@ -321,7 +324,8 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw, if (num_svs > 1) { Perl_croak(aTHX_ "More than one argument to '%c&' open",IoTYPE(io)); } - for (; isSPACE(*type); type++) ; + while (isSPACE(*type)) + type++; if (num_svs && (SvIOK(*svp) || (SvPOK(*svp) && looks_like_number(*svp)))) { fd = SvUV(*svp); num_svs = 0; @@ -398,7 +402,8 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw, } } /* & */ else { - for (; isSPACE(*type); type++) ; + while (isSPACE(*type)) + type++; if (*type == IoTYPE_STD && (!type[1] || isSPACE(type[1]) || type[1] == ':')) { type++; fp = PerlIO_stdout(); @@ -421,7 +426,9 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw, goto unknown_open_mode; } /* IoTYPE_WRONLY */ else if (*type == IoTYPE_RDONLY) { - for (type++; isSPACE(*type); type++) ; + do { + type++; + } while (isSPACE(*type)); mode[0] = 'r'; #ifdef HAS_STRLCAT if (in_raw) @@ -504,7 +511,8 @@ Perl_do_openn(pTHX_ GV *gv, register const char *oname, I32 len, int as_raw, } IoTYPE(io) = IoTYPE_PIPE; if (num_svs) { - for (; isSPACE(*type); type++) ; + while (isSPACE(*type)) + type++; if (*type) { if (PerlIO_apply_layers(aTHX_ fp, mode, type) != 0) { goto say_false; @@ -740,7 +748,8 @@ Perl_nextargv(pTHX_ register GV *gv) if (PL_inplace) { if (!PL_argvout_stack) PL_argvout_stack = newAV(); - av_push(PL_argvout_stack, SvREFCNT_inc_simple(PL_defoutgv)); + assert(PL_defoutgv); + av_push(PL_argvout_stack, SvREFCNT_inc_simple_NN(PL_defoutgv)); } } if (PL_filemode & (S_ISUID|S_ISGID)) { @@ -1518,7 +1527,9 @@ Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report) if (strnEQ(cmd,"exec",4) && isSPACE(cmd[4])) goto doshell; - for (s = cmd; *s && isALNUM(*s); s++) ; /* catch VAR=val gizmo */ + s = cmd; + while (isALNUM(*s)) + s++; /* catch VAR=val gizmo */ if (*s == '=') goto doshell; @@ -1556,10 +1567,12 @@ Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report) PL_Cmd = savepvn(cmd, s-cmd); a = PL_Argv; for (s = PL_Cmd; *s;) { - while (*s && isSPACE(*s)) s++; + while (isSPACE(*s)) + s++; if (*s) *(a++) = s; - while (*s && !isSPACE(*s)) s++; + while (*s && !isSPACE(*s)) + s++; if (*s) *s++ = '\0'; } @@ -423,11 +423,7 @@ STATIC void S_sequence(pTHX_ register const OP *o) { dVAR; - SV *op; - const char *key; - STRLEN len; const OP *oldop = NULL; - OP *l; if (!o) return; @@ -441,8 +437,10 @@ S_sequence(pTHX_ register const OP *o) Sequence = newHV(); for (; o; o = o->op_next) { - op = newSVuv(PTR2UV(o)); - key = SvPV_const(op, len); + STRLEN len; + SV * const op = newSVuv(PTR2UV(o)); + const char * const key = SvPV_const(op, len); + if (hv_exists(Sequence, key, len)) break; @@ -481,32 +479,22 @@ S_sequence(pTHX_ register const OP *o) case OP_COND_EXPR: case OP_RANGE: hv_store(Sequence, key, len, newSVuv(++PL_op_seq), 0); - for (l = cLOGOPo->op_other; l && l->op_type == OP_NULL; l = l->op_next) - ; - sequence(l); + sequence_tail(cLOGOPo->op_other); break; case OP_ENTERLOOP: case OP_ENTERITER: hv_store(Sequence, key, len, newSVuv(++PL_op_seq), 0); - for (l = cLOOPo->op_redoop; l && l->op_type == OP_NULL; l = l->op_next) - ; - sequence(l); - for (l = cLOOPo->op_nextop; l && l->op_type == OP_NULL; l = l->op_next) - ; - sequence(l); - for (l = cLOOPo->op_lastop; l && l->op_type == OP_NULL; l = l->op_next) - ; - sequence(l); + sequence_tail(cLOOPo->op_redoop); + sequence_tail(cLOOPo->op_nextop); + sequence_tail(cLOOPo->op_lastop); break; case OP_QR: case OP_MATCH: case OP_SUBST: hv_store(Sequence, key, len, newSVuv(++PL_op_seq), 0); - for (l = cPMOPo->op_pmreplstart; l && l->op_type == OP_NULL; l = l->op_next) - ; - sequence(l); + sequence_tail(cPMOPo->op_pmreplstart); break; case OP_HELEM: @@ -520,6 +508,14 @@ S_sequence(pTHX_ register const OP *o) } } +static void +S_sequence_tail(pTHX_ const OP *o) +{ + while (o && (o->op_type == OP_NULL)) + o = o->op_next; + sequence(o); +} + STATIC UV S_sequence_num(pTHX_ const OP *o) { @@ -1340,6 +1340,7 @@ Es |void |to_byte_substr |NN regexp * prog s |CV* |deb_curcv |I32 ix s |void |debprof |NN const OP *o s |void |sequence |NULLOK const OP *o +s |void |sequence_tail |NULLOK const OP *o s |UV |sequence_num |NULLOK const OP *o s |SV* |pm_description |NN const PMOP *pm #endif @@ -1354,6 +1354,7 @@ #define deb_curcv S_deb_curcv #define debprof S_debprof #define sequence S_sequence +#define sequence_tail S_sequence_tail #define sequence_num S_sequence_num #define pm_description S_pm_description #endif @@ -3512,6 +3513,7 @@ #define deb_curcv(a) S_deb_curcv(aTHX_ a) #define debprof(a) S_debprof(aTHX_ a) #define sequence(a) S_sequence(aTHX_ a) +#define sequence_tail(a) S_sequence_tail(aTHX_ a) #define sequence_num(a) S_sequence_num(aTHX_ a) #define pm_description(a) S_pm_description(aTHX_ a) #endif @@ -3681,6 +3681,7 @@ STATIC void S_debprof(pTHX_ const OP *o) __attribute__nonnull__(pTHX_1); STATIC void S_sequence(pTHX_ const OP *o); +STATIC void S_sequence_tail(pTHX_ const OP *o); STATIC UV S_sequence_num(pTHX_ const OP *o); STATIC SV* S_pm_description(pTHX_ const PMOP *pm) __attribute__nonnull__(pTHX_1); |