emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master ee98ca6 2/2: Fix compiler thinking width and height


From: Michal Nazarewicz
Subject: [Emacs-diffs] master ee98ca6 2/2: Fix compiler thinking width and height may be unitialised in frame.c
Date: Mon, 12 Sep 2016 19:57:50 +0000 (UTC)

branch: master
commit ee98ca67f886698b6072095e55b820b1c31e1236
Author: Michal Nazarewicz <address@hidden>
Commit: Michal Nazarewicz <address@hidden>

    Fix compiler thinking width and height may be unitialised in frame.c
    
    This fixes the following warning:
    
        frame.c: In function ‘x_set_frame_parameters’:
        frame.c:3329:25: error: ‘width’ may be used uninitialized in
                this function [-Werror=maybe-uninitialized]
               adjust_frame_size (f, width_change ? width : -1,
                             ^
    
    * src/frame.c (x_set_frame_parameters): Drop width_changed and
    height_changed variables in favour of storing that information in
    width and height variables.
---
 src/frame.c |   30 ++++++++----------------------
 1 file changed, 8 insertions(+), 22 deletions(-)

diff --git a/src/frame.c b/src/frame.c
index 6de55e4..166623c 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -3136,8 +3136,7 @@ x_set_frame_parameters (struct frame *f, Lisp_Object 
alist)
   /* If both of these parameters are present, it's more efficient to
      set them both at once.  So we wait until we've looked at the
      entire list before we set them.  */
-  int width, height;
-  bool width_change = false, height_change = false;
+  int width = -1, height = -1;  /* -1 denotes they were not changed. */
 
   /* Same here.  */
   Lisp_Object left, top;
@@ -3213,30 +3212,18 @@ x_set_frame_parameters (struct frame *f, Lisp_Object 
alist)
       if (EQ (prop, Qwidth))
         {
          if (RANGED_INTEGERP (0, val, INT_MAX))
-           {
-             width = XFASTINT (val) * FRAME_COLUMN_WIDTH (f) ;
-             width_change = true;
-           }
+           width = XFASTINT (val) * FRAME_COLUMN_WIDTH (f) ;
          else if (CONSP (val) && EQ (XCAR (val), Qtext_pixels)
                   && RANGED_INTEGERP (0, XCDR (val), INT_MAX))
-           {
-             width = XFASTINT (XCDR (val));
-             width_change = true;
-           }
+           width = XFASTINT (XCDR (val));
         }
       else if (EQ (prop, Qheight))
         {
          if (RANGED_INTEGERP (0, val, INT_MAX))
-           {
-             height = XFASTINT (val) * FRAME_LINE_HEIGHT (f);
-             height_change = true;
-           }
+           height = XFASTINT (val) * FRAME_LINE_HEIGHT (f);
          else if (CONSP (val) && EQ (XCAR (val), Qtext_pixels)
                   && RANGED_INTEGERP (0, XCDR (val), INT_MAX))
-           {
-             height = XFASTINT (XCDR (val));
-             height_change = true;
-           }
+           height = XFASTINT (XCDR (val));
         }
       else if (EQ (prop, Qtop))
        top = val;
@@ -3318,16 +3305,15 @@ x_set_frame_parameters (struct frame *f, Lisp_Object 
alist)
 
     XSETFRAME (frame, f);
 
-    if ((width_change && width != FRAME_TEXT_WIDTH (f))
-       || (height_change && height != FRAME_TEXT_HEIGHT (f)))
+    if ((width != -1 && width != FRAME_TEXT_WIDTH (f))
+       || (height != -1 && height != FRAME_TEXT_HEIGHT (f)))
       /* We could consider checking f->after_make_frame here, but I
         don't have the faintest idea why the following is needed at
         all.  With the old setting it can get a Heisenbug when
         EmacsFrameResize intermittently provokes a delayed
         change_frame_size in the middle of adjust_frame_size.  */
       /**      || (f->can_x_set_window_size && (f->new_height || 
f->new_width))) **/
-      adjust_frame_size (f, width_change ? width : -1,
-                        height_change ? height : -1, 1, 0, 
Qx_set_frame_parameters);
+      adjust_frame_size (f, width, height, 1, 0, Qx_set_frame_parameters);
 
     if ((!NILP (left) || !NILP (top))
        && ! (left_no_change && top_no_change)



reply via email to

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