Subject: bug#11199: 24.0.95; killing right-to-left text at eob leads to inconsistent state

From: Michael Welsh Duggan <[email-masked]>
Date: Sun, 08 Apr 2012 17:01:31 -0400

Eli Zaretskii <[email-masked]> writes:

>> Date: Sun, 08 Apr 2012 23:37:22 +0300
>> From: Eli Zaretskii <[email-masked]>
>> Cc: [email-masked]
>> 
>> > (gdb) p row->end
>> > $8 = {
>> >   pos = {
>> >     charpos = 309, 
>> >     bytepos = 313
>> >   }, 
>
> Btw, if row->end is at character position 309, how come in this frame:
>
>   #1  0x080779e7 in init_iterator (it=0xbfffa878, w=0x88e30d0, charpos=308, 
>       bytepos=311, row=0x0, base_face_id=DEFAULT_FACE_ID) at xdisp.c:2507
>
> init_iterator is called with character position 308?  What is `pos' in
> this frame #2:
>
>   #2  0x080794bb in init_from_display_pos (it=0xbfffa878, w=0x88e30d0, 
>       pos=0x8dccc58) at xdisp.c:2951
>
> That is,
>
>  (gdb) frame 2
>  (gdb) p *pos

I had to recreate the error, so to make sure the numbers were
consistent, I re-printed out these positions from different frames:

Breakpoint 1, abort () at emacs.c:390
(gdb) up
#1  0x080779e7 in init_iterator (it=0xbfffa878, w=0x88e30d0, charpos=308, 
    bytepos=311, row=0x0, base_face_id=DEFAULT_FACE_ID) at xdisp.c:2507
(gdb) up
#2  0x080794bb in init_from_display_pos (it=0xbfffa878, w=0x88e30d0, 
    pos=0x8d60df0) at xdisp.c:2951
(gdb) p *pos
$9 = {
  pos = {
    charpos = 308, 
    bytepos = 311
  }, 
  overlay_string_index = -1, 
  string_pos = {
    charpos = -1, 
    bytepos = -1
  }, 
  dpvec_index = -1
}
(gdb) up
#3  0x08079810 in init_to_row_end (it=0xbfffa878, w=0x88e30d0, row=0x8d60d88)
    at xdisp.c:3054
(gdb) p row->end
$10 = {
  pos = {
    charpos = 308, 
    bytepos = 311
  }, 
  overlay_string_index = -1, 
  string_pos = {
    charpos = -1, 
    bytepos = -1
  }, 
  dpvec_index = -1
}
(gdb) up
#4  0x080a82f0 in try_window_id (w=0x88e30d0) at xdisp.c:17140
(gdb) p row->end
$11 = {
  pos = {
    charpos = 309, 
    bytepos = 313
  }, 
  overlay_string_index = -1, 
  string_pos = {
    charpos = -1, 
    bytepos = -1
  }, 
  dpvec_index = -1
}
(gdb) 

-- 
Michael Welsh Duggan
([email-masked])