emacs-devel
[Top][All Lists]
Advanced

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

Re: [Emacs-diffs] emacs-26 9bf66c6: Don't run FOR_EACH_FRAME when there'


From: Stefan Monnier
Subject: Re: [Emacs-diffs] emacs-26 9bf66c6: Don't run FOR_EACH_FRAME when there's no frame left (Bug#29961)
Date: Fri, 15 Dec 2017 11:23:31 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

> -  FOR_EACH_FRAME (tail, frame)
> -    free_glyphs (XFRAME (frame));
> +  if (!NILP (Vframe_list))
> +    FOR_EACH_FRAME (tail, frame)
> +      free_glyphs (XFRAME (frame));
 
I don't understand:

    #define FOR_EACH_FRAME(list_var, frame_var)     \
      for ((list_var) = (eassume (CONSP (Vframe_list)), Vframe_list); \
           (CONSP (list_var)                        \
            && (frame_var = XCAR (list_var), true)); \
           list_var = XCDR (list_var))

So, if Vframe_list is Qnil, the `CONSP (list_var)` test should make us
exit the loop right from the start.

Is the problem caused by eassume (CONSP (Vframe_list))?
If so, maybe we should simply remove it.


        Stefan



reply via email to

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