GNU bug report logs -
#73752
29.4; Ligatures are randomly rendered with extra spaces
Previous Next
Reported by: xuan <at> xlk.me
Date: Fri, 11 Oct 2024 21:40:02 UTC
Severity: normal
Merged with 54646
Found in versions 29.0.50, 29.4
Fixed in version 30.1
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> From: Visuwesh <visuweshm <at> gmail.com>
> Cc: dev <at> real-or-random.org, xuan <at> xlk.me, 73752 <at> debbugs.gnu.org
> Date: Sat, 02 Nov 2024 23:09:40 +0530
>
> [சனி நவம்பர் 02, 2024] Eli Zaretskii wrote:
>
> >> >> > What does GDB show if you type
> >> >> >
> >> >> > (gdb) p LGLYPH_ADJUSTMENT(lglyph)
> >> >> > (gdb) p Qnil
> >> >>
> >> >> (gdb) p LGLYPH_ADJUSTMENT(lglyph)
> >> >> $3 = XIL(0)
> >> >> (gdb) p Qnil
> >> >> $4 = XIL(0)
> >> >
> >> > OK, but then why did the breakpoint break, when the condition is
> >> > obviously false: LGLYPH_ADJUSTMENT(lglyph) == Qnil.
> >> >
> >> > What happens if you type this:
> >> >
> >> > (gdb) p Qnil+0
> >>
> >> (gdb) p Qnil+0
> >> Attempt to take address of value not located in memory.
> >
> > And this:
> >
> > (gdb) ptype Qnil
>
> (gdb) ptype Qnil
> type = struct Lisp_Object {
> Lisp_Word i;
> }
Ah, that explains the problem. Then please change the breakpoint
condition to say this instead, and re-run the experiment:
break hbfont.c:598 if xoff == 0 && yoff == 0 && wadjust == metrics.width && ((struct Lisp_Object)LGLYPH_ADJUSTMENT(lglyph)).i != 0
This bug report was last modified 251 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.