GNU bug report logs -
#5858
24.0.50; bidi aborts: "can't happen" happens
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Thu, 08 Apr 2010 20:42:57 +0300
with message-id <83d3y9263i.fsf <at> gnu.org>
and subject line Re: bug#5858: 24.0.50; bidi aborts: "can't happen" happens
has caused the GNU bug report #5858,
regarding 24.0.50; bidi aborts: "can't happen" happens
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact help-debbugs <at> gnu.org
immediately.)
--
5858: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5858
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi,
the following code crashes emacs by making code in bidi.c call
abort():
(let ((bidi-display-reordering t))
(insert #x650 #x650) ; ARABIC KASRA
(redisplay))
The place that calls abort() is in bidi_resolve_neutral():
#0 abort () at emacs.c:430
#1 0x0000000000490abe in bidi_resolve_neutral (bidi_it=0x7fffffff9000)
at bidi.c:1577
#2 0x000000000049119a in bidi_level_of_next_char (bidi_it=0x7fffffff9000)
at bidi.c:1713
...
(gdb) up
#1 0x0000000000490abe in bidi_resolve_neutral (bidi_it=0x7fffffff9000)
at bidi.c:1577
1577 abort (); /* can't happen: BNs are skipped */
(gdb) l
1572 next_type = STRONG_R;
1573 saved_it.next_for_neutral.type = STRONG_R;
1574 break;
1575 case WEAK_BN:
1576 if (!bidi_explicit_dir_char (bidi_it->ch))
1577 abort (); /* can't happen: BNs are skipped */
1578 /* FALLTHROUGH */
1579 case NEUTRAL_B:
1580 /* Marched all the way to the end of this level run.
1581 We need to use the eor type, whose information is
In GNU Emacs 24.0.50.3 (x86_64-unknown-linux-gnu, GTK+ Version 2.19.7)
of 2010-04-07 on arirop
Windowing system distributor `Fedora Project', version 11.0.10799901
--
Ari Roponen
[Message part 3 (message/rfc822, inline)]
> From: Ari Roponen <ari.roponen <at> gmail.com>
> Date: Thu, 08 Apr 2010 12:03:55 +0300
> Cc:
>
> the following code crashes emacs by making code in bidi.c call
> abort():
>
> (let ((bidi-display-reordering t))
> (insert #x650 #x650) ; ARABIC KASRA
> (redisplay))
Heh, a brain-fart from 9 years ago that came back to haunt me...
> The place that calls abort() is in bidi_resolve_neutral():
>
> #0 abort () at emacs.c:430
> #1 0x0000000000490abe in bidi_resolve_neutral (bidi_it=0x7fffffff9000)
> at bidi.c:1577
> #2 0x000000000049119a in bidi_level_of_next_char (bidi_it=0x7fffffff9000)
> at bidi.c:1713
> ...
>
> (gdb) up
> #1 0x0000000000490abe in bidi_resolve_neutral (bidi_it=0x7fffffff9000)
> at bidi.c:1577
> 1577 abort (); /* can't happen: BNs are skipped */
> (gdb) l
> 1572 next_type = STRONG_R;
> 1573 saved_it.next_for_neutral.type = STRONG_R;
> 1574 break;
> 1575 case WEAK_BN:
> 1576 if (!bidi_explicit_dir_char (bidi_it->ch))
> 1577 abort (); /* can't happen: BNs are skipped */
> 1578 /* FALLTHROUGH */
> 1579 case NEUTRAL_B:
> 1580 /* Marched all the way to the end of this level run.
> 1581 We need to use the eor type, whose information is
Yours is an optimized build, right? Because, in an unoptimized build,
it's a different call to `abort' that is triggered:
#1 0x011a3931 in bidi_resolve_neutral (bidi_it=0x82d2f8) at bidi.c:1600
1600 abort ();
(gdb) l
1595 bidi_copy_it (bidi_it, &saved_it);
1596 return bidi_it->type;
1597 }
1598 break;
1599 default:
1600 abort (); <<<<<<<<<<<<<<<<<
1601 }
1602 type = bidi_resolve_neutral_1 (saved_it.prev_for_neutral.type,
1603 next_type, current_level);
1604 saved_it.type = type;
Anyway, I think I fixed it (revno 99851); please try again after
updating your tree. If it still doesn't work, please re-open this
bug.
Thanks for reporting this.
This bug report was last modified 15 years and 109 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.