GNU bug report logs -
#74274
[PATCH] Revert part of d3f8ed730f to avoid segmentation fault
Previous Next
Reported by: Gong Qijian <gongqijian <at> gmail.com>
Date: Sat, 9 Nov 2024 01:21:01 UTC
Severity: normal
Tags: patch
Fixed in version 31.1
Done: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> Cc: Gerd Möllmann <gerd <at> gnu.org>, 74274 <at> debbugs.gnu.org
> From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
> Date: Sat, 09 Nov 2024 08:23:44 +0100
>
> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
> > qijian gong <gongqijian <at> gmail.com> writes:
> >
> >> Gerd Möllmann <gerd.moellmann <at> gmail.com>于2024年11月9日 周六下午12:15写道:
> >>
> >> Do I understand this right, that the advice you add to
> >> tty-tip-compute-position only serves the purpose of being able to pop up
> >> a tip frame early, when mouse-position doesn't really have a position to
> >> report? Or does it also serve another purpose?
> >>
> >> Yes, that's correct, there is no other purpose. It seems
> >> mouse-position doesn't really have a position until the mouse was
> >> moved by user.
> >
> > Ok, thanks.
> >
> > I think I know what this is. It's the very particular case of the very
> > first redisplay + presence of a child freame, which copies glyphs from a
> > current matrix that is still clear, i.e. zeroed, so that glyph::frame
> > is zero and so on.
>
> Which is fixed for me with
>
> 1 file changed, 6 insertions(+), 3 deletions(-)
> src/dispnew.c | 9 ++++++---
>
> modified src/dispnew.c
> @@ -3544,9 +3544,12 @@ prepare_desired_root_row (struct frame *root, int y)
> if (!root_row->enabled_p)
> {
> struct glyph_row *from = MATRIX_ROW (root->current_matrix, y);
> - memcpy (root_row->glyphs[0], from->glyphs[0],
> - root->current_matrix->matrix_w * sizeof (struct glyph));
> - root_row->enabled_p = true;
> + if (from->enabled_p)
> + {
> + memcpy (root_row->glyphs[0], from->glyphs[0],
> + root->current_matrix->matrix_w * sizeof (struct glyph));
> + root_row->enabled_p = true;
> + }
> }
> return root_row;
> }
Should this perhaps have an eassert which verifies that every glyph
has a valid frame pointer? At the very least please add a comment
there explaining the need for the enabled_p test and mentioning the
frame pointer of the glyphs.
Thanks.
This bug report was last modified 285 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.