Martin Vermeer wrote:

> Yes, this is a different problem. I get it too now, but not yesterday
> evening. Here:
> 
>    1480             // If we have separators, this is not the last row of
>    a
>    1481             // par, does not end in newline, and is not row above
>    a
>    1482             // display inset... then stretch it
>    1483             if (ns
>    1484                 && rit->end() < pit->size()
>    1485                 && !pit->isNewline(next_row->pos()- 1)
>    1486                 && !disp_inset
>    1487                 ) {
>    1488                     fill_separator = w / ns;
>    1489             } else if (is_rtl) {
>    1490                 x += w;
>    1491             }
> 
> It crashed on the isNewline() on line 1485, because next_row->pos()
> seems to contain nonsense (it should point to the first char of this
> row within its par). Adding a printout confirms this: either 0 or a
> very large value.

On a 20 sec read, I think they may be related: maybe your other change broke
this constant:

"rit->end() < pit->size => rit->next() != endrit"

In that case, rit->next() is maybe endrit and thus has nonsense information.

Note that I may be talking nonsense myself here... fell free to ignore if I
am. ;-)

Alfredo


Reply via email to