From: Paul Eggert Date: Wed, 12 Apr 2017 14:27:23 +0000 (-0700) Subject: Port recent frame changes to --enable-gcc-warnings X-Git-Tag: emacs-26.0.90~521^2~648 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8720f601e715e5f1d41f7cf863a525a1cc1bc12c;p=emacs.git 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. --- diff --git a/src/frame.c b/src/frame.c index ed6c527d4d8..e5d80fa8257 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 376df528466..84f9a05d774 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))