In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/401a9b146916c60dc9bbd897355c3c83888d61f3?hp=395b8e2d02eadc9b0639534410c39c530bc8a33d>
- Log ----------------------------------------------------------------- commit 401a9b146916c60dc9bbd897355c3c83888d61f3 Author: Chip Salzenberg <[email protected]> Date: Tue Jul 27 23:42:49 2010 -0700 remove misleading comment about CXINC; it's fine M scope.c commit 109bf713de022d5340396fd57331bb452da6e986 Author: Chip Salzenberg <[email protected]> Date: Tue Jul 27 23:40:56 2010 -0700 Revert "Fix off-by-one: avoid allocating an extra context" This reverts commit 395b8e2d02eadc9b0639534410c39c530bc8a33d. The fencepost error is coming from inside the programmer! M cop.h M scope.c ----------------------------------------------------------------------- Summary of changes: cop.h | 2 +- scope.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cop.h b/cop.h index 7d90891..e5370c4 100644 --- a/cop.h +++ b/cop.h @@ -732,7 +732,7 @@ struct context { #define CxFOREACHDEF(c) ((CxTYPE_is_LOOP(c) && CxTYPE(c) != CXt_LOOP_PLAIN) \ && ((c)->cx_type & CXp_FOR_DEF)) -#define CXINC ((cxstack_ix + 1) < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc())) +#define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc())) /* =head1 "Gimme" Values diff --git a/scope.c b/scope.c index 2d9e383..5445da9 100644 --- a/scope.c +++ b/scope.c @@ -77,10 +77,10 @@ Perl_cxinc(pTHX) dVAR; const IV old_max = cxstack_max; cxstack_max = GROW(cxstack_max); - Renew(cxstack, cxstack_max, PERL_CONTEXT); + Renew(cxstack, cxstack_max + 1, PERL_CONTEXT); /* Without any kind of initialising deep enough recursion * will end up reading uninitialised PERL_CONTEXTs. */ - PoisonNew(cxstack + old_max, cxstack_max - old_max, PERL_CONTEXT); + PoisonNew(cxstack + old_max + 1, cxstack_max - old_max, PERL_CONTEXT); return cxstack_ix + 1; } -- Perl5 Master Repository
