diff options
author | Zefram <zefram@fysh.org> | 2009-11-26 15:19:09 +0000 |
---|---|---|
committer | H.Merijn Brand <h.m.brand@xs4all.nl> | 2009-11-26 16:46:15 +0100 |
commit | 9735c8aa020a58992ffadba440014d200222da56 (patch) | |
tree | dbe7a21e1f1afe2ee1c739a42c49030e538a2ac7 /toke.c | |
parent | e90b02b98382872bd43097b9b146a9b00ca3171b (diff) | |
download | perl-9735c8aa020a58992ffadba440014d200222da56.tar.gz |
-Dmad minitest failure bisect
Tony Cook wrote:
>Smokes with -Dmad have been failing during make minitest since the
>middle of last month.
Mostly fixed by the attached patch. The fault is a logic error on my
part, probably from the early phase of developing the lexer API patch,
when I didn't properly understand the various buffer pointer variables.
In my tests with -Dmad, I'm still getting a test failure ("panic: input
overflow") from t/op/incfilter.t. The underlying problem is the filter
layer mishandling things when a filter function gives it a multiline
string, so it generates an invalid SV state (strlen(SvPVX(PL_linestr))
> SvCUR(PL_linestr)). This faulty state also occurs without -Dmad,
and so doesn't appear to be Mad-related, it just doesn't in practice
cause the test panic without -Dmad. I'm investigating this bug now.
-zefram
Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
Diffstat (limited to 'toke.c')
-rw-r--r-- | toke.c | 3 |
1 files changed, 0 insertions, 3 deletions
@@ -1201,9 +1201,6 @@ Perl_lex_next_chunk(pTHX_ U32 flags) bool got_some; if (flags & ~(LEX_KEEP_PREVIOUS|LEX_FAKE_EOF)) Perl_croak(aTHX_ "Lexing code internal error (%s)", "lex_next_chunk"); -#ifdef PERL_MAD - flags |= LEX_KEEP_PREVIOUS; -#endif /* PERL_MAD */ linestr = PL_parser->linestr; buf = SvPVX(linestr); if (!(flags & LEX_KEEP_PREVIOUS) && |