emacs-devel
[Top][All Lists]
Advanced

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

Re: master f92520d009e 1/2: Don't pause display for pending input


From: Gerd Möllmann
Subject: Re: master f92520d009e 1/2: Don't pause display for pending input
Date: Thu, 19 Dec 2024 14:06:03 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> Cc: emacs-devel@gnu.org,  Gerd Möllmann <gerd@gnu.org>
>> Date: Thu, 19 Dec 2024 13:24:41 +0100
>> 
>> Andrea Corallo <acorallo@gnu.org> writes:
>> 
>> > And with --enable-checking=all --enable-check-lisp-object-type 
>> > --with-native-compilation=yes
>> >
>> > =======
>> > In file included from dispnew.c:27:
>> > In function ‘PSEUDOVECTORP’,
>> >     inlined from ‘FRAMEP’ at lisp.h:3343:10,
>> >     inlined from ‘FRAME_PARENT_FRAME’ at frame.h:1236:42,
>> >     inlined from ‘root_frame’ at dispnew.c:3340:10,
>> >     inlined from ‘is_in_matrix’ at dispnew.c:3877:24,
>> >     inlined from ‘is_cursor_obscured’ at dispnew.c:3898:8,
>> >     inlined from ‘terminal_cursor_magic’ at dispnew.c:3917:7,
>> >     inlined from ‘combine_updates_for_frame’ at dispnew.c:3970:5:
>> > lisp.h:1096:68: warning: null pointer dereference [-Wnull-dereference]
>> >  1096 |           && ((XUNTAG (a, Lisp_Vectorlike, union 
>> > vectorlike_header)->size
>> >       |                                                                    
>> > ^
>> > =======
>> >
>> This one I don't see here, with clang 19. And I must admit I don't
>> understand it what it is complaining about. The function root_frame
>> is pretty simple:
>> 
>>   struct frame *
>>   root_frame (struct frame *f)
>>   {
>>     while (FRAME_PARENT_FRAME (f))
>>       f = FRAME_PARENT_FRAME (f);
>>     return f;
>>   }
>> 
>> and FRAME_PARENT_FFAME is
>> 
>>   INLINE struct frame *
>>   FRAME_PARENT_FRAME (struct frame *f)
>>   {
>>     return NILP (f->parent_frame) ? NULL : XFRAME (f->parent_frame);
>>   }
>> 
>> Any idea?
>
> I think it wants to tell you that the argument F of FRAME_PARENT_FRAME
> could be NULL.

The only explanation I can find is that GCC seems this

  #define SELECTED_FRAME()                              \
       ((FRAMEP (selected_frame)                                \
         && FRAME_LIVE_P (XFRAME (selected_frame)))     \
        ? XFRAME (selected_frame)                               \
        : (emacs_abort (), (struct frame *) 0))

and doesn't realize that it actually never returns NULL. That's from up
the stack in is_cursor_obscured.

Beats me, sorry.



reply via email to

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