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>
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) &&