X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=doop.c;h=06b1b38d5c85f4e43518ecc9376448aab054bb26;hb=97017a809da405a36dfccf88d7bd13d26ca0e932;hp=4f536f00595936665071d88d2e67e5007f3b683e;hpb=0c57e439868bda58b2cbd4708d7a8b4dcf15b989;p=p5sagit%2Fp5-mst-13.2.git diff --git a/doop.c b/doop.c index 4f536f0..06b1b38 100644 --- a/doop.c +++ b/doop.c @@ -924,7 +924,7 @@ Perl_do_chop(pTHX_ register SV *astr, register SV *sv) HE* entry; (void)hv_iterinit(hv); /*SUPPRESS 560*/ - while (entry = hv_iternext(hv)) + while ((entry = hv_iternext(hv))) do_chop(astr,hv_iterval(hv,entry)); return; } @@ -994,7 +994,7 @@ Perl_do_chomp(pTHX_ register SV *sv) HE* entry; (void)hv_iterinit(hv); /*SUPPRESS 560*/ - while (entry = hv_iternext(hv)) + while ((entry = hv_iternext(hv))) count += do_chomp(hv_iterval(hv,entry)); return count; } @@ -1098,6 +1098,9 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right) STRLEN dulen = 0; I32 ulen; + if (optype != OP_BIT_AND) + dc = SvGROW(sv, leftlen+rightlen+1); + switch (optype) { case OP_BIT_AND: while (lulen && rulen) { @@ -1290,7 +1293,7 @@ Perl_do_kv(pTHX) EXTEND(SP, HvKEYS(keys) * (dokeys + dovalues)); PUTBACK; /* hv_iternext and hv_iterval might clobber stack_sp */ - while (entry = hv_iternext(keys)) { + while ((entry = hv_iternext(keys))) { SPAGAIN; if (dokeys) XPUSHs(hv_iterkeysv(entry)); /* won't clobber stack_sp */