[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Debugging printing to stderr prior glyph row values ....
From: |
Keith David Bershatsky |
Subject: |
Re: Debugging printing to stderr prior glyph row values .... |
Date: |
Fri, 24 May 2019 07:56:25 -0700 |
Thank you, Eli, for teaching me how to debug this particular issue and also how
to avoid crashes of this nature in the future. I was unaware that an enabled_p
(true) row could have zero glyphs. Now that I know this is possible, I can
programmatically deal with it.
Inasmuch as rows following a row with _only_ ZV contain an ends_at_zv_p flag
that is also true, and because there may be no guarantee that the preceding row
in the matrix can be relied upon to ascertain whether it ends at ZV, I believe
a new flag would be helpful (at least in this particular context) -- i.e.,
beyond_zv_p versus ends_at_zv_p. That way, only one row in the entire matrix
will have a flag that indicates an at-ZV versus a post-ZV situation. I'll
spend some time on Saturday digging around xdisp.c ...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> Date: [05-23-2019 23:45:44] <24 May 2019 09:45:44 +0300>
> From: Eli Zaretskii <address@hidden>
> To: Keith David Bershatsky <address@hidden>
> CC: address@hidden
> Subject: Re: Debugging printing to stderr prior glyph row values ....
>
> > Date: Thu, 23 May 2019 17:03:36 -0700
> > From: Keith David Bershatsky <address@hidden>
> > Cc: address@hidden
> >
> > I got it to crash ... again. "pgrowx previous_row" from gdb prints nothing
> > and returns to a new gdb command prompt.
>
> This means the previous glyph row had its 'used' member equal to zero.
>
> > [CAVEAT: I wanted a crash, so I did not insert a test for the 'used'
> > member being greater than zero.]
>
> And it shows:
>
> > (gdb) print *previous_row
> > $3 = {
> > glyphs = {0x11a800000, 0x11a800000, 0x11a803520, 0x11a803520},
> > used = {0, 0, 0, 0},
>
> See? all of the 'used' members are zero. IOW, there are no glyphs in
> that row.