GNU bug report logs - #18438
24.4.50; assertion failed in bidi.c

Previous Next

Package: emacs;

Reported by: aidalgol <at> amuri.net

Date: Tue, 9 Sep 2014 21:52:01 UTC

Severity: normal

Tags: moreinfo

Merged with 17817

Found in versions 24.3.91, 24.4.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #76 received at 18438 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ken Brown <kbrown <at> cornell.edu>
Cc: 18438 <at> debbugs.gnu.org, aidalgol <at> amuri.net
Subject: Re: bug#18438: 24.4.50; assertion failed in bidi.c
Date: Wed, 24 Sep 2014 18:01:14 +0300
> Date: Wed, 24 Sep 2014 10:06:30 -0400
> From: Ken Brown <kbrown <at> cornell.edu>
> CC: Eli Zaretskii <eliz <at> gnu.org>
> 
> By the way, I just got the same assertion failure in bidi.c, with a 
> backtrace under gdb 7.8 (attached).

What is the backtrace of the other threads?

> The assertion failure still doesn't make sense because
> type=STRONG_L.  But I see lots of strange values of "type" in frames
> 3 and higher.

Which ones?  The only ones I see are these:

  #3  0x00000001005009cc in bidi_level_of_next_char (bidi_it=0x426878)
      at /usr/src/debug/emacs-24.3.93-4/src/bidi.c:2325
	  eob = 811
	  type = UNKNOWN_BT
	  level = 0
	  prev_level = -1
	  next_for_neutral = {
	    bytepos = 4353152, 
	    charpos = 4300194024, 
	    type = 4344736,         <<<<<<<<<<<<<<<<<<<<<<<<<<<
	    type_after_w1 = UNKNOWN_BT, 
	    orig_type = 2148292989  <<<<<<<<<<<<<<<<<<<<<<<<<<<
	  }

which is OK, since the next_for_neutral member doesn't have to be
initialized (the UNKNOWN_BT value in type_after_w1 says it isn't), and
will not be used until it is.  Others are in frame #6, like this:

          bidi_it = {
            bytepos = 4348392, 
            charpos = 4306733202, 
            ch = 5482662, 
            nchars = 25775286310, 
            ch_len = 25775286790, 
            type = 4348416, 
            type_after_w1 = UNKNOWN_BT, 
            orig_type = 6632775, 

but it is from the wrap_it variable, which is not assigned values
unless you have word-wrap turned on in that buffer.

I also see a 'struct it' in redisplay_window (frame #8) with garbled
bidi type values, but that variable is only used under certain
conditions (see line 16178 of xdisp.c), and I have no reason to
believe those conditions were true in this case.

So I don't really see any immediate problems here.

We are left with the riddle.




This bug report was last modified 9 years and 206 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.