Subject: Re: bug#15365: 24.3.50; Segfault when calling vc-git-log-edit-toggle-amend

From: Eli Zaretskii <[email-masked]>
Date: Sat, 14 Sep 2013 11:02:22 +0300

> Date: Sat, 14 Sep 2013 04:12:56 +0300
> From: Dmitry Gutov <[email-masked]>
> CC: [email-masked]
> 
> On 13.09.2013 16:18, Eli Zaretskii wrote:
> > Too bad this requires to commit to a git repo.
> 
> Would your reply have been the same if it were any other VCS, save Bazaar?

If you can reproduce this with bzr (I tried, but couldn't), please
show the recipe.  I have a number of local bzr repositories, and can
create new ones at will, so I can use them for testing.  For any other
VCS, I have only remote repositories on my machine, and I don't dare
to run such tests for a remote repo.  If you can set up some scratch
git repo for me at some URL, I will try using that to work on this
bug.

And yes, I try to stay away of git, and only use a handful of commands
with it.  There are already people here whose refusal to use bzr is
silently tolerated, so I don't see why my desire not to touch git any
more than I have to should be met with a different reaction.

> > So the values of PT, Z, and Z_BYTE are important.
> 
> (gdb) p PT
> $16 = 78
> (gdb) p Z
> $17 = 17704
> (gdb) p Z_BYTE
> $18 = 17704

I see nothing wrong here.

> >    (gdb) pmtxrows current_matrix
> 
> Here you go:
> 
> (gdb) pmtxrows current_matrix
> 0: edges=(1,77),enb=0,r2l=0,cont=0,trunc=(0,0),at_zv=0
> 1: edges=(77,78),enb=0,r2l=0,cont=0,trunc=(0,0),at_zv=0
> 2: edges=(78,79),enb=0,r2l=0,cont=0,trunc=(0,0),at_zv=0
> 3: edges=(79,124),enb=0,r2l=0,cont=0,trunc=(0,0),at_zv=0
> 4: edges=(124,171),enb=0,r2l=0,cont=0,trunc=(0,0),at_zv=0
> 5: edges=(171,193),enb=0,r2l=0,cont=0,trunc=(0,0),at_zv=0

Thanks, this was "the missing link".  Please try running with the
following change for a while, and see if it avoids the aborts, and
does not produce any other redisplay problems:

=== modified file 'src/xdisp.c'
--- src/xdisp.c	2013-09-13 15:03:51 +0000
+++ src/xdisp.c	2013-09-14 07:59:19 +0000
@@ -17283,8 +17283,6 @@ try_window_id (struct window *w)
 	  row = row_containing_pos (w, PT, r0, NULL, 0);
 	  if (row)
 	    set_cursor_from_row (w, row, current_matrix, 0, 0, 0, 0);
-	  else
-	    emacs_abort ();
 	  return 1;
 	}
     }
@@ -17325,8 +17323,6 @@ try_window_id (struct window *w)
 	  row = row_containing_pos (w, PT, r0, NULL, 0);
 	  if (row)
 	    set_cursor_from_row (w, row, current_matrix, 0, 0, 0, 0);
-	  else
-	    emacs_abort ();
 	  return 2;
 	}
     }