emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 8720f60: Port recent frame changes to --enable-gcc-


From: Paul Eggert
Subject: [Emacs-diffs] master 8720f60: Port recent frame changes to --enable-gcc-warnings
Date: Wed, 12 Apr 2017 10:27:58 -0400 (EDT)

branch: master
commit 8720f601e715e5f1d41f7cf863a525a1cc1bc12c
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Port recent frame changes to --enable-gcc-warnings
    
    * src/frame.c (next_frame, prev_frame):
    Remove now-redundant assertions.
    * src/frame.h (FOR_EACH_FRAME): Assume Vframe_list is nonempty.
---
 src/frame.c | 6 ------
 src/frame.h | 5 +++--
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/frame.c b/src/frame.c
index ed6c527..e5d80fa 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1461,9 +1461,6 @@ next_frame (Lisp_Object frame, Lisp_Object minibuf)
   Lisp_Object f, tail;
   int passed = 0;
 
-  /* There must always be at least one frame in Vframe_list.  */
-  eassert (CONSP (Vframe_list));
-
   while (passed < 2)
     FOR_EACH_FRAME (tail, f)
       {
@@ -1486,9 +1483,6 @@ prev_frame (Lisp_Object frame, Lisp_Object minibuf)
 {
   Lisp_Object f, tail, prev = Qnil;
 
-  /* There must always be at least one frame in Vframe_list.  */
-  eassert (CONSP (Vframe_list));
-
   FOR_EACH_FRAME (tail, f)
     {
       if (EQ (frame, f) && !NILP (prev))
diff --git a/src/frame.h b/src/frame.h
index 376df52..84f9a05 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1111,7 +1111,8 @@ default_pixels_per_inch_y (void)
 /* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
    `for' loop which iterates over the elements of Vframe_list.  The
    loop will set FRAME_VAR, a Lisp_Object, to each frame in
-   Vframe_list in succession and execute the statement.  LIST_VAR
+   Vframe_list in succession and execute the statement.  Vframe_list
+   should be nonempty, so the body is executed at least once.  LIST_VAR
    should be a Lisp_Object too; it is used to iterate through the
    Vframe_list.  Note that this macro walks over child frames and
    the tooltip frame as well.
@@ -1121,7 +1122,7 @@ default_pixels_per_inch_y (void)
    something which executes the statement once.  */
 
 #define FOR_EACH_FRAME(list_var, frame_var)    \
-  for ((list_var) = Vframe_list;               \
+  for ((list_var) = (eassume (CONSP (Vframe_list)), Vframe_list); \
        (CONSP (list_var)                       \
        && (frame_var = XCAR (list_var), true)); \
        list_var = XCDR (list_var))



reply via email to

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