bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#28505: 26.0.60; Crash in Fmove_point_visually


From: Benjamin Riefenstahl
Subject: bug#28505: 26.0.60; Crash in Fmove_point_visually
Date: Tue, 19 Sep 2017 18:13:05 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.60 (gnu/linux)

>> From: Benjamin Riefenstahl <address@hidden>
>> Date: Mon, 18 Sep 2017 23:02:12 +0200
>> 
>> So I recompiled with -O0 and after reading the code I added a few more
>> "p"s in GDB.  I see that "w->current_matrix" has "rows_allocated = 1,
>> nrows = 1", but still "row" was initialized from "rows" and than
>> incremented by "dir" (1).  Is that as it should be?

Eli Zaretskii writes:
> Yes, but the incremented value is then checked for validity with this
> snippet:
>
>         if (row < MATRIX_FIRST_TEXT_ROW (w->current_matrix)
>             || row > MATRIX_BOTTOM_TEXT_ROW (w->current_matrix, w))
>           goto simulate_display;

MATRIX_BOTTON_TEXT_ROW calculates "rows + nrows" (plus the mode-line,
but this is the minibuffer, so it does not have a mode-line).  So
despite the name of the macro the result points *after* the bottom row,
not *at* it.  Should that comparison be "row >= BOTTOM"?  I'll try that.
The macro seems to be misnamed though if that is the problem.

benny





reply via email to

[Prev in Thread] Current Thread [Next in Thread]