emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-bug-tracker] bug#5858: marked as done (24.0.50; bidi aborts: "can


From: GNU bug Tracking System
Subject: [Emacs-bug-tracker] bug#5858: marked as done (24.0.50; bidi aborts: "can't happen" happens)
Date: Thu, 08 Apr 2010 17:44:02 +0000

Your message dated Thu, 08 Apr 2010 20:42:57 +0300
with message-id <address@hidden>
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 address@hidden
immediately.)


-- 
5858: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5858
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.0.50; bidi aborts: "can't happen" happens Date: Thu, 08 Apr 2010 12:03:55 +0300
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




--- End Message ---
--- Begin Message --- Subject: Re: bug#5858: 24.0.50; bidi aborts: "can't happen" happens Date: Thu, 08 Apr 2010 20:42:57 +0300
> From: Ari Roponen <address@hidden>
> 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.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]