[Top][All Lists]

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

Re: Question about display engine

From: Ergus
Subject: Re: Question about display engine
Date: Sun, 13 Oct 2019 20:25:42 +0200
User-agent: NeoMutt/20180716

On Sun, Oct 13, 2019 at 08:04:02PM +0300, Eli Zaretskii wrote:
Date: Sun, 13 Oct 2019 18:44:24 +0200
From: Ergus <address@hidden>
Cc: address@hidden, address@hidden

>Could it be that redisplay_window_0, or some function it calls,
>signals an error, which is caught by internal_condition_case_1?  What
>happens if you put a breakpoint in signal_or_quit, does it get called
>from redisplay_window or some other function called by

Yes, actually:

#0  0x00005597732a0380 in signal_or_quit (error_symbol=0x2cd0, 
data=0x559775ee2633, keyboard_quit=false) at ../../src/eval.c:1586
#1  0x000055977314c308 in Fsignal (error_symbol=<optimized out>, 
error_symbol@entry=0x2cd0, data=<optimized out>) at ../../src/eval.c:1568
#2  0x000055977314c4c9 in xsignal (data=<optimized out>, error_symbol=0x2cd0) 
at ../../src/lisp.h:4139
#3  0x000055977314c4c9 in xsignal2 (error_symbol=error_symbol@entry=0x2cd0, 
arg1=<optimized out>, arg2=<optimized out>) at ../../src/eval.c:1713
#4  0x000055977314b76e in args_out_of_range (a1=<optimized out>, a2=<optimized 
out>) at ../../src/lisp.h:1032
#5  0x000055977314e97b in validate_interval_range (object=0x559775cee0d5, 
begin=0x7fff35ec34b8, end=0x7fff35ec34b8, force=<optimized out>) at 
#6  0x00005597732f4050 in Ftext_properties_at (position=<optimized out>, 
object=<optimized out>) at ../../src/textprop.c:572
#7  0x00005597732f40bc in Fget_text_property (position=<optimized out>, prop=0x5d30, 
object=<optimized out>) at ../../src/textprop.c:592
#8  0x00005597731f8eec in face_at_buffer_position
    (w=0x5597758e7620, pos=0, endptr=endptr@entry=0x7fff35ec3650, limit=100, 
mouse=mouse@entry=false, base_face_id=1, attr_filter=LFACE_EXTEND_INDEX)
    at ../../src/xfaces.c:6090

Then looking at the position that causes the error will probably tell
you what's wrong.  (Is OBJECT passed to Fget_text_property a string?
if not, position of zero is invalid.)

Actually conditioning the call to face_at_pos to when IT_CHARPOS (*it)
!= 0 seems to fix the issue with magit... but maybe we are just hiding
something under the carpet here. Can you imagine something more general
than that just this condition?

Or what could be doing magit to expose this and not the other packages?

reply via email to

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