On Tue, May 31, 2011 at 08:33:07AM -0700, Father Chrysostomos via RT wrote:
> > > Hang about, I'm confused now. All the failures I saw were in
> > pp_parseform,
> > > related to buffer overruns in PL_formtarget. I never saw the
> > assertion
> > > failure in S_doparseform, and none of my commits would have
> > addressed such
> > > a failure.
>
> I only got an assertion failure when I tried out Robin’s patch. So I
> didn’t push it.
>
> >
> > But regardless, Robin's patch looks successful.
>
> ?
>
> >
> > Can anyone see the assertion failure since my series of commits?
>
> No. Nor was there one before that.
Ok I've looked more closely at this, and I'm happy now that the buffer
estimation code as-is now is correct, and that Robin's patch was wrong.
Basically each of \n, @ and ^ can add up to 10 ops, while \0 can add 10
only if it's the last char in the string. So 12 + 10*(number of [\n@^]) is
right.
--
print+qq&$}$"$/$s$,$a$d$g$s$@$.$q$,$:$.$q$^$,$@$a$~$;$.$q$m&if+map{m,^\d{0\,},,${$::{$'}}=chr($"+=$&||1)}q&10m22,42}6:17a2~2.3@3;^2dg3q/s"&=~m*\d\*.*g
Thread Previous