Subject: bug#17322: 24.3.90; emacs crash at eassert (verify_row_hash (a)) in dispnew.c:1169

From: Eli Zaretskii <[email-masked]>
Date: Wed, 23 Apr 2014 18:35:01 +0300

> Date: Wed, 23 Apr 2014 16:54:27 +0200
> From: Nicolas Richard <[email-masked]>
> CC: [email-masked]
> 
> (gdb) frame 2
> #2  0x08059979 in row_equal_p (a=0xa25151c, b=0xb2a0afc, mouse_face_p=true) at dispnew.c:1169
> 1169      eassert (verify_row_hash (a));
> (gdb) pgrowx a
> TEXT: 19 glyphs
>   0    0: CHAR[7] pos=993 blev=0,btyp=L w=9 a+d=14+5 face=36 MB
>   1    9: CHAR[1] pos=994 blev=0,btyp=L w=9 a+d=14+5 face=36 MB
>   2   18: CHAR[0] pos=995 blev=0,btyp=L w=9 a+d=14+5 face=36 MB
>   3   27: CHAR[e] pos=996 blev=0,btyp=L w=9 a+d=14+5 face=36 MB
>   4   36: CHAR[e] pos=997 blev=0,btyp=L w=9 a+d=14+5 face=36 MB
>   5   45: CHAR[8] pos=998 blev=0,btyp=L w=9 a+d=14+5 face=36 MB
>   6   54: CHAR[7] pos=999 blev=0,btyp=L w=9 a+d=14+5 face=36 MB
>   7   63: CHAR[ ] pos=1000 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>   8   72: CHAR[*] pos=1001 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>   9   81: CHAR[ ] pos=1002 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  10   90: CHAR[c] pos=1003 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  11   99: CHAR[ ] pos=1004 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  12  108: CHAR[o] pos=1005 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  13  117: CHAR[ ] pos=1006 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  14  126: CHAR[l] pos=1007 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  15  135: CHAR[d] pos=1008 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  16  144: CHAR[l] pos=1009 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  17  153: CHAR[c] pos=1010 blev=0,btyp=L w=9 a+d=14+5 face=26 MB
>  18  162: CHAR[ ] pos=0 blev=0,btyp=B w=9 a+d=14+5 face=26 MB
> RIGHT: 1 glyphs
>   0  171: COMP[0 (32776..21)] pos=-1 w=1012 a+d=0+-9539 face=5 vof=2388 MB slice=32776,0,21,0
> (gdb) pgrowx b
> TEXT: 19 glyphs
>   0    0: CHAR[7] pos=993 blev=0,btyp=L w=9 a+d=14+5 face=21 MB
>   1    9: CHAR[1] pos=994 blev=0,btyp=L w=9 a+d=14+5 face=21 MB
>   2   18: CHAR[0] pos=995 blev=0,btyp=L w=9 a+d=14+5 face=21 MB
>   3   27: CHAR[e] pos=996 blev=0,btyp=L w=9 a+d=14+5 face=21 MB
>   4   36: CHAR[e] pos=997 blev=0,btyp=L w=9 a+d=14+5 face=21 MB
>   5   45: CHAR[8] pos=998 blev=0,btyp=L w=9 a+d=14+5 face=21 MB
>   6   54: CHAR[7] pos=999 blev=0,btyp=L w=9 a+d=14+5 face=21 MB
>   7   63: CHAR[ ] pos=1000 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>   8   72: CHAR[*] pos=1001 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>   9   81: CHAR[ ] pos=1002 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  10   90: CHAR[c] pos=1003 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  11   99: CHAR[ ] pos=1004 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  12  108: CHAR[o] pos=1005 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  13  117: CHAR[ ] pos=1006 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  14  126: CHAR[l] pos=1007 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  15  135: CHAR[d] pos=1008 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  16  144: CHAR[l] pos=1009 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  17  153: CHAR[c] pos=1010 blev=0,btyp=L w=9 a+d=14+5 face=11 MB
>  18  162: CHAR[ ] pos=0 blev=0,btyp=B w=9 a+d=14+5 MB
> (gdb) 
> 
> fwiw, the chars in the brackets above correspond to a git abbreviated sha1 and a commit message as displayed e.g. in magit log buffers.

Yes, but these two glyph rows _are_ different: they have different
faces (see the "face=" parts), and also one of them has something
displayed in the right display margin, while the other doesn't.

Can you tell which part(s) of magit make these changes to the
displayed material?

Also, what do these commands display?

 (gdb) p/x a->hash
 (gdb) p/x row_hash(a)