Subject: Re: bug#22739: 25.0.50; Hangs on revertig buffer

From: Óscar Fuentes <[email-masked]>
Date: Fri, 19 Feb 2016 14:21:48 +0100

Sorry, for some reason `finish' was taking a long time to return from
the last frame I mentioned on my previous message. This is the complete
sequence:

(gdb) finish
Run till exit from #0  bidi_resolve_weak (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:2346
bidi_resolve_brackets (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:2809
2809          if (type == NEUTRAL_ON)
Value returned is $1 = WEAK_BN
(gdb) 
Run till exit from #0  bidi_resolve_brackets (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:2809
0x00000000004a2563 in bidi_resolve_neutral (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:3026
3026                type = bidi_resolve_brackets (bidi_it);
Value returned is $2 = WEAK_BN
(gdb) 
Run till exit from #0  0x00000000004a2563 in bidi_resolve_neutral (
    bidi_it=bidi_it@entry=0x7ffead896e00) at ../../emacs/src/bidi.c:3026
bidi_level_of_next_char (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:3201
3201      if (type == NEUTRAL_B)
Value returned is $3 = STRONG_L
(gdb) finish
Run till exit from #0  bidi_level_of_next_char (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:3201
bidi_move_to_visually_next (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:3394
3394      if (new_level != old_level)
Value returned is $4 = 0
(gdb) 
Run till exit from #0  bidi_move_to_visually_next (bidi_it=bidi_it@entry=0x7ffead896e00)
    at ../../emacs/src/bidi.c:3394
set_iterator_to_next (it=it@entry=0x7ffead896460, reseat_p=reseat_p@entry=true)
    at ../../emacs/src/xdisp.c:7398
7398                  if (prev_scan_dir != it->bidi_it.scan_dir)
(gdb) 
Run till exit from #0  set_iterator_to_next (it=it@entry=0x7ffead896460, 
    reseat_p=reseat_p@entry=true) at ../../emacs/src/xdisp.c:7398
move_it_in_display_line_to (it=it@entry=0x7ffead896460, 
    to_charpos=to_charpos@entry=330908, to_x=to_x@entry=-1, 
    op=op@entry=(MOVE_TO_VPOS | MOVE_TO_POS)) at ../../emacs/src/xdisp.c:8980
8980          if (IT_CHARPOS (*it) < CHARPOS (this_line_min_pos))
(gdb) 
Run till exit from #0  move_it_in_display_line_to (it=it@entry=0x7ffead896460, 
    to_charpos=to_charpos@entry=330908, to_x=to_x@entry=-1, 
    op=op@entry=(MOVE_TO_VPOS | MOVE_TO_POS)) at ../../emacs/src/xdisp.c:8980
move_it_to (it=it@entry=0x7ffead896460, to_charpos=to_charpos@entry=330908, 
    to_x=to_x@entry=-1, to_y=to_y@entry=-1, to_vpos=1, op=op@entry=12)
    at ../../emacs/src/xdisp.c:9161
9161                  if (skip == MOVE_POS_MATCH_OR_ZV || it->vpos == to_vpos)
Value returned is $5 = MOVE_LINE_CONTINUED
(gdb) 
Run till exit from #0  move_it_to (it=it@entry=0x7ffead896460, 
    to_charpos=to_charpos@entry=330908, to_x=to_x@entry=-1, to_y=to_y@entry=-1, 
    to_vpos=1, op=op@entry=12) at ../../emacs/src/xdisp.c:9161
move_it_vertically_backward (it=it@entry=0x7ffead898b20, dy=dy@entry=500)
    at ../../emacs/src/xdisp.c:9489
9489                   && SREF (it2.string, IT_STRING_BYTEPOS (it2) - 1) == '\n')));
Value returned is $6 = 812
(gdb) 
Run till exit from #0  move_it_vertically_backward (it=it@entry=0x7ffead898b20, 
    dy=dy@entry=500) at ../../emacs/src/xdisp.c:9489
0x000000000054ae08 in internal_condition_case (
    bfun=bfun@entry=0x4e80d0 <command_loop_1>, handlers=handlers@entry=17856, 
    hfun=hfun@entry=0x4de9c0 <cmd_error>) at ../../emacs/src/eval.c:1300
1300      if (sys_setjmp (c->jmp))
(gdb) 
Run till exit from #0  0x000000000054ae08 in internal_condition_case (
    bfun=bfun@entry=0x4e80d0 <command_loop_1>, handlers=handlers@entry=17856, 
    hfun=hfun@entry=0x4de9c0 <cmd_error>) at ../../emacs/src/eval.c:1300
command_loop_2 (ignore=ignore@entry=0) at ../../emacs/src/keyboard.c:1090
1090      while (!NILP (val));
Value returned is $7 = 2
(gdb) 
Run till exit from #0  command_loop_2 (ignore=ignore@entry=0)
    at ../../emacs/src/keyboard.c:1090