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.
This commit is contained in:
Paul Eggert 2017-04-12 07:27:23 -07:00 committed by Paul Eggert
parent 88f43dc30c
commit 8720f601e7
2 changed files with 3 additions and 8 deletions

View file

@ -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))

View file

@ -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))