Drop WGET and revert read access to Lisp_Objects slots of struct window.
[bpt/emacs.git] / src / dispnew.c
index 2faede3..b82761f 100644 (file)
@@ -245,9 +245,9 @@ add_window_display_history (struct window *w, const char *msg, int paused_p)
            "%"pMu": window %p (`%s')%s\n%s",
            history_tick++,
            w,
-           ((BUFFERP (WGET (w, buffer))
-             && STRINGP (BVAR (XBUFFER (WGET (w, buffer)), name)))
-            ? SSDATA (BVAR (XBUFFER (WGET (w, buffer)), name))
+           ((BUFFERP (w->buffer)
+             && STRINGP (BVAR (XBUFFER (w->buffer), name)))
+            ? SSDATA (BVAR (XBUFFER (w->buffer), name))
             : "???"),
            paused_p ? " ***paused***" : "",
            msg);
@@ -385,7 +385,7 @@ margin_glyphs_to_reserve (struct window *w, int total_glyphs, Lisp_Object margin
 
   if (NUMBERP (margin))
     {
-      int width = XFASTINT (WGET (w, total_cols));
+      int width = XFASTINT (w->total_cols);
       double d = max (0, XFLOATINT (margin));
       d = min (width / 2 - 1, d);
       n = (int) ((double) total_glyphs / width * d);
@@ -455,8 +455,8 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
      the matrix means preventing redisplay.  */
   if (matrix->pool == NULL)
     {
-      left = margin_glyphs_to_reserve (w, dim.width, WGET (w, left_margin_cols));
-      right = margin_glyphs_to_reserve (w, dim.width, WGET (w, right_margin_cols));
+      left = margin_glyphs_to_reserve (w, dim.width, w->left_margin_cols);
+      right = margin_glyphs_to_reserve (w, dim.width, w->right_margin_cols);
       eassert (left >= 0 && right >= 0);
       marginal_areas_changed_p = (left != matrix->left_margin_glyphs
                                  || right != matrix->right_margin_glyphs);
@@ -495,9 +495,9 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
       if (w)
        {
          left = margin_glyphs_to_reserve (w, dim.width,
-                                          WGET (w, left_margin_cols));
+                                          w->left_margin_cols);
          right = margin_glyphs_to_reserve (w, dim.width,
-                                           WGET (w, right_margin_cols));
+                                           w->right_margin_cols);
        }
       else
        left = right = 0;
@@ -620,8 +620,8 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
 
              /* Window end is invalid, if inside of the rows that
                 are invalidated below.  */
-             if (INTEGERP (WGET (w, window_end_vpos))
-                 && XFASTINT (WGET (w, window_end_vpos)) >= i)
+             if (INTEGERP (w->window_end_vpos)
+                 && XFASTINT (w->window_end_vpos) >= i)
                WSET (w, window_end_valid, Qnil);
 
              while (i < matrix->nrows)
@@ -862,15 +862,15 @@ clear_window_matrices (struct window *w, int desired_p)
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
+      if (!NILP (w->hchild))
        {
-         eassert (WINDOWP (WGET (w, hchild)));
-         clear_window_matrices (XWINDOW (WGET (w, hchild)), desired_p);
+         eassert (WINDOWP (w->hchild));
+         clear_window_matrices (XWINDOW (w->hchild), desired_p);
        }
-      else if (!NILP (WGET (w, vchild)))
+      else if (!NILP (w->vchild))
        {
-         eassert (WINDOWP (WGET (w, vchild)));
-         clear_window_matrices (XWINDOW (WGET (w, vchild)), desired_p);
+         eassert (WINDOWP (w->vchild));
+         clear_window_matrices (XWINDOW (w->vchild), desired_p);
        }
       else
        {
@@ -883,7 +883,7 @@ clear_window_matrices (struct window *w, int desired_p)
            }
        }
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
 
@@ -947,7 +947,7 @@ blank_row (struct window *w, struct glyph_row *row, int y)
   clear_glyph_row (row);
   row->y = y;
   row->ascent = row->phys_ascent = 0;
-  row->height = row->phys_height = FRAME_LINE_HEIGHT (XFRAME (WGET (w, frame)));
+  row->height = row->phys_height = FRAME_LINE_HEIGHT (XFRAME (w->frame));
   row->visible_height = row->height;
 
   if (row->y < min_y)
@@ -1493,7 +1493,7 @@ check_matrix_invariants (struct window *w)
   struct glyph_row *row = matrix->rows;
   struct glyph_row *last_text_row = NULL;
   struct buffer *saved = current_buffer;
-  struct buffer *buffer = XBUFFER (WGET (w, buffer));
+  struct buffer *buffer = XBUFFER (w->buffer);
   int c;
 
   /* This can sometimes happen for a fresh window.  */
@@ -1656,8 +1656,8 @@ allocate_matrices_for_frame_redisplay (Lisp_Object window, int x, int y,
      points to the mini-buffer window, if any, which is arranged
      vertically below other windows.  */
   in_horz_combination_p
-    = (!NILP (WGET (XWINDOW (window), parent))
-       && !NILP (WGET (XWINDOW (WGET (XWINDOW (window), parent)), hchild)));
+    = (!NILP (XWINDOW (window)->parent)
+       && !NILP (XWINDOW (XWINDOW (window)->parent)->hchild));
 
   /* For WINDOW and all windows on the same level.  */
   do
@@ -1666,12 +1666,12 @@ allocate_matrices_for_frame_redisplay (Lisp_Object window, int x, int y,
 
       /* Get the dimension of the window sub-matrix for W, depending
         on whether this is a combination or a leaf window.  */
-      if (!NILP (WGET (w, hchild)))
-       dim = allocate_matrices_for_frame_redisplay (WGET (w, hchild), x, y,
+      if (!NILP (w->hchild))
+       dim = allocate_matrices_for_frame_redisplay (w->hchild, x, y,
                                                     dim_only_p,
                                                     window_change_flags);
-      else if (!NILP (WGET (w, vchild)))
-       dim = allocate_matrices_for_frame_redisplay (WGET (w, vchild), x, y,
+      else if (!NILP (w->vchild))
+       dim = allocate_matrices_for_frame_redisplay (w->vchild, x, y,
                                                     dim_only_p,
                                                     window_change_flags);
       else
@@ -1695,10 +1695,10 @@ allocate_matrices_for_frame_redisplay (Lisp_Object window, int x, int y,
              || dim.width != w->desired_matrix->matrix_w
              || dim.height != w->desired_matrix->matrix_h
              || (margin_glyphs_to_reserve (w, dim.width,
-                                           WGET (w, left_margin_cols))
+                                           w->left_margin_cols)
                  != w->desired_matrix->left_margin_glyphs)
              || (margin_glyphs_to_reserve (w, dim.width,
-                                           WGET (w, right_margin_cols))
+                                           w->right_margin_cols)
                  != w->desired_matrix->right_margin_glyphs))
            *window_change_flags |= CHANGED_LEAF_MATRIX;
 
@@ -1727,7 +1727,7 @@ allocate_matrices_for_frame_redisplay (Lisp_Object window, int x, int y,
       hmax = max (hmax, dim.height);
 
       /* Next window on same level.  */
-      window = WGET (w, next);
+      window = w->next;
     }
   while (!NILP (window));
 
@@ -1758,7 +1758,7 @@ static int
 required_matrix_height (struct window *w)
 {
 #ifdef HAVE_WINDOW_SYSTEM
-  struct frame *f = XFRAME (WGET (w, frame));
+  struct frame *f = XFRAME (w->frame);
 
   if (FRAME_WINDOW_P (f))
     {
@@ -1784,7 +1784,7 @@ static int
 required_matrix_width (struct window *w)
 {
 #ifdef HAVE_WINDOW_SYSTEM
-  struct frame *f = XFRAME (WGET (w, frame));
+  struct frame *f = XFRAME (w->frame);
   if (FRAME_WINDOW_P (f))
     {
       int ch_width = FRAME_SMALLEST_CHAR_WIDTH (f);
@@ -1801,7 +1801,7 @@ required_matrix_width (struct window *w)
     }
 #endif /* HAVE_WINDOW_SYSTEM */
 
-  return XINT (WGET (w, total_cols));
+  return XINT (w->total_cols);
 }
 
 
@@ -1813,10 +1813,10 @@ allocate_matrices_for_window_redisplay (struct window *w)
 {
   while (w)
     {
-      if (!NILP (WGET (w, vchild)))
-       allocate_matrices_for_window_redisplay (XWINDOW (WGET (w, vchild)));
-      else if (!NILP (WGET (w, hchild)))
-       allocate_matrices_for_window_redisplay (XWINDOW (WGET (w, hchild)));
+      if (!NILP (w->vchild))
+       allocate_matrices_for_window_redisplay (XWINDOW (w->vchild));
+      else if (!NILP (w->hchild))
+       allocate_matrices_for_window_redisplay (XWINDOW (w->hchild));
       else
        {
          /* W is a leaf window.  */
@@ -1835,7 +1835,7 @@ allocate_matrices_for_window_redisplay (struct window *w)
          adjust_glyph_matrix (w, w->current_matrix, 0, 0, dim);
        }
 
-      w = NILP (WGET (w, next)) ? NULL : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? NULL : XWINDOW (w->next);
     }
 }
 
@@ -1882,7 +1882,7 @@ adjust_frame_glyphs_initially (void)
 {
   struct frame *sf = SELECTED_FRAME ();
   struct window *root = XWINDOW (sf->root_window);
-  struct window *mini = XWINDOW (WGET (root, next));
+  struct window *mini = XWINDOW (root->next);
   int frame_lines = FRAME_LINES (sf);
   int frame_cols = FRAME_COLS (sf);
   int top_margin = FRAME_TOP_MARGIN (sf);
@@ -1927,21 +1927,21 @@ showing_window_margins_p (struct window *w)
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
+      if (!NILP (w->hchild))
        {
-         if (showing_window_margins_p (XWINDOW (WGET (w, hchild))))
+         if (showing_window_margins_p (XWINDOW (w->hchild)))
            return 1;
        }
-      else if (!NILP (WGET (w, vchild)))
+      else if (!NILP (w->vchild))
        {
-         if (showing_window_margins_p (XWINDOW (WGET (w, vchild))))
+         if (showing_window_margins_p (XWINDOW (w->vchild)))
            return 1;
        }
-      else if (!NILP (WGET (w, left_margin_cols))
-              || !NILP (WGET (w, right_margin_cols)))
+      else if (!NILP (w->left_margin_cols)
+              || !NILP (w->right_margin_cols))
        return 1;
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
   return 0;
 }
@@ -1955,18 +1955,18 @@ fake_current_matrices (Lisp_Object window)
 {
   struct window *w;
 
-  for (; !NILP (window); window = WGET (w, next))
+  for (; !NILP (window); window = w->next)
     {
       w = XWINDOW (window);
 
-      if (!NILP (WGET (w, hchild)))
-       fake_current_matrices (WGET (w, hchild));
-      else if (!NILP (WGET (w, vchild)))
-       fake_current_matrices (WGET (w, vchild));
+      if (!NILP (w->hchild))
+       fake_current_matrices (w->hchild);
+      else if (!NILP (w->vchild))
+       fake_current_matrices (w->vchild);
       else
        {
          int i;
-         struct frame *f = XFRAME (WGET (w, frame));
+         struct frame *f = XFRAME (w->frame);
          struct glyph_matrix *m = w->current_matrix;
          struct glyph_matrix *fm = f->current_matrix;
 
@@ -2317,10 +2317,10 @@ free_window_matrices (struct window *w)
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
-       free_window_matrices (XWINDOW (WGET (w, hchild)));
-      else if (!NILP (WGET (w, vchild)))
-       free_window_matrices (XWINDOW (WGET (w, vchild)));
+      if (!NILP (w->hchild))
+       free_window_matrices (XWINDOW (w->hchild));
+      else if (!NILP (w->vchild))
+       free_window_matrices (XWINDOW (w->vchild));
       else
        {
          /* This is a leaf window.  Free its memory and reset fields
@@ -2332,7 +2332,7 @@ free_window_matrices (struct window *w)
        }
 
       /* Next window on same level.  */
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
 
@@ -2453,14 +2453,14 @@ build_frame_matrix_from_window_tree (struct glyph_matrix *matrix, struct window
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
-       build_frame_matrix_from_window_tree (matrix, XWINDOW (WGET (w, hchild)));
-      else if (!NILP (WGET (w, vchild)))
-       build_frame_matrix_from_window_tree (matrix, XWINDOW (WGET (w, vchild)));
+      if (!NILP (w->hchild))
+       build_frame_matrix_from_window_tree (matrix, XWINDOW (w->hchild));
+      else if (!NILP (w->vchild))
+       build_frame_matrix_from_window_tree (matrix, XWINDOW (w->vchild));
       else
        build_frame_matrix_from_leaf_window (matrix, w);
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
 
@@ -2599,7 +2599,7 @@ spec_glyph_lookup_face (struct window *w, GLYPH *glyph)
   /* Convert the glyph's specified face to a realized (cache) face.  */
   if (lface_id > 0)
     {
-      int face_id = merge_faces (XFRAME (WGET (w, frame)),
+      int face_id = merge_faces (XFRAME (w->frame),
                                 Qt, lface_id, DEFAULT_FACE_ID);
       SET_GLYPH_FACE (*glyph, face_id);
     }
@@ -2720,10 +2720,10 @@ mirror_make_current (struct window *w, int frame_row)
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
-       mirror_make_current (XWINDOW (WGET (w, hchild)), frame_row);
-      else if (!NILP (WGET (w, vchild)))
-       mirror_make_current (XWINDOW (WGET (w, vchild)), frame_row);
+      if (!NILP (w->hchild))
+       mirror_make_current (XWINDOW (w->hchild), frame_row);
+      else if (!NILP (w->vchild))
+       mirror_make_current (XWINDOW (w->vchild), frame_row);
       else
        {
          /* Row relative to window W.  Don't use FRAME_TO_WINDOW_VPOS
@@ -2756,7 +2756,7 @@ mirror_make_current (struct window *w, int frame_row)
            }
        }
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
 
@@ -2815,16 +2815,16 @@ mirrored_line_dance (struct glyph_matrix *matrix, int unchanged_at_top, int nlin
 static void
 sync_window_with_frame_matrix_rows (struct window *w)
 {
-  struct frame *f = XFRAME (WGET (w, frame));
+  struct frame *f = XFRAME (w->frame);
   struct glyph_row *window_row, *window_row_end, *frame_row;
   int left, right, x, width;
 
   /* Preconditions: W must be a leaf window on a tty frame.  */
-  eassert (NILP (WGET (w, hchild)) && NILP (WGET (w, vchild)));
+  eassert (NILP (w->hchild) && NILP (w->vchild));
   eassert (!FRAME_WINDOW_P (f));
 
-  left = margin_glyphs_to_reserve (w, 1, WGET (w, left_margin_cols));
-  right = margin_glyphs_to_reserve (w, 1, WGET (w, right_margin_cols));
+  left = margin_glyphs_to_reserve (w, 1, w->left_margin_cols);
+  right = margin_glyphs_to_reserve (w, 1, w->right_margin_cols);
   x = w->current_matrix->matrix_x;
   width = w->current_matrix->matrix_w;
 
@@ -2856,15 +2856,15 @@ frame_row_to_window (struct window *w, int row)
 
   while (w && !found)
     {
-      if (!NILP (WGET (w, hchild)))
-       found = frame_row_to_window (XWINDOW (WGET (w, hchild)), row);
-      else if (!NILP (WGET (w, vchild)))
-       found = frame_row_to_window (XWINDOW (WGET (w, vchild)), row);
+      if (!NILP (w->hchild))
+       found = frame_row_to_window (XWINDOW (w->hchild), row);
+      else if (!NILP (w->vchild))
+       found = frame_row_to_window (XWINDOW (w->vchild), row);
       else if (row >= WINDOW_TOP_EDGE_LINE (w)
               && row < WINDOW_BOTTOM_EDGE_LINE (w))
        found = w;
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 
   return found;
@@ -2887,11 +2887,11 @@ mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
-       mirror_line_dance (XWINDOW (WGET (w, hchild)), unchanged_at_top,
+      if (!NILP (w->hchild))
+       mirror_line_dance (XWINDOW (w->hchild), unchanged_at_top,
                           nlines, copy_from, retained_p);
-      else if (!NILP (WGET (w, vchild)))
-       mirror_line_dance (XWINDOW (WGET (w, vchild)), unchanged_at_top,
+      else if (!NILP (w->vchild))
+       mirror_line_dance (XWINDOW (w->vchild), unchanged_at_top,
                           nlines, copy_from, retained_p);
       else
        {
@@ -2947,7 +2947,7 @@ mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy
                {
                  /* A copy between windows.  This is an infrequent
                     case not worth optimizing.  */
-                 struct frame *f = XFRAME (WGET (w, frame));
+                 struct frame *f = XFRAME (w->frame);
                  struct window *root = XWINDOW (FRAME_ROOT_WINDOW (f));
                  struct window *w2;
                  struct glyph_matrix *m2;
@@ -2984,7 +2984,7 @@ mirror_line_dance (struct window *w, int unchanged_at_top, int nlines, int *copy
        }
 
       /* Next window on same level.  */
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
 
@@ -3002,18 +3002,18 @@ check_window_matrix_pointers (struct window *w)
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
-       check_window_matrix_pointers (XWINDOW (WGET (w, hchild)));
-      else if (!NILP (WGET (w, vchild)))
-       check_window_matrix_pointers (XWINDOW (WGET (w, vchild)));
+      if (!NILP (w->hchild))
+       check_window_matrix_pointers (XWINDOW (w->hchild));
+      else if (!NILP (w->vchild))
+       check_window_matrix_pointers (XWINDOW (w->vchild));
       else
        {
-         struct frame *f = XFRAME (WGET (w, frame));
+         struct frame *f = XFRAME (w->frame);
          check_matrix_pointers (w->desired_matrix, f->desired_matrix);
          check_matrix_pointers (w->current_matrix, f->current_matrix);
        }
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
 
@@ -3061,10 +3061,10 @@ check_matrix_pointers (struct glyph_matrix *window_matrix,
 static int
 window_to_frame_vpos (struct window *w, int vpos)
 {
-  eassert (!FRAME_WINDOW_P (XFRAME (WGET (w, frame))));
+  eassert (!FRAME_WINDOW_P (XFRAME (w->frame)));
   eassert (vpos >= 0 && vpos <= w->desired_matrix->nrows);
   vpos += WINDOW_TOP_EDGE_LINE (w);
-  eassert (vpos >= 0 && vpos <= FRAME_LINES (XFRAME (WGET (w, frame))));
+  eassert (vpos >= 0 && vpos <= FRAME_LINES (XFRAME (w->frame)));
   return vpos;
 }
 
@@ -3075,7 +3075,7 @@ window_to_frame_vpos (struct window *w, int vpos)
 static int
 window_to_frame_hpos (struct window *w, int hpos)
 {
-  eassert (!FRAME_WINDOW_P (XFRAME (WGET (w, frame))));
+  eassert (!FRAME_WINDOW_P (XFRAME (w->frame)));
   hpos += WINDOW_LEFT_EDGE_COL (w);
   return hpos;
 }
@@ -3294,14 +3294,14 @@ update_window_tree (struct window *w, int force_p)
 
   while (w && !paused_p)
     {
-      if (!NILP (WGET (w, hchild)))
-       paused_p |= update_window_tree (XWINDOW (WGET (w, hchild)), force_p);
-      else if (!NILP (WGET (w, vchild)))
-       paused_p |= update_window_tree (XWINDOW (WGET (w, vchild)), force_p);
+      if (!NILP (w->hchild))
+       paused_p |= update_window_tree (XWINDOW (w->hchild), force_p);
+      else if (!NILP (w->vchild))
+       paused_p |= update_window_tree (XWINDOW (w->vchild), force_p);
       else if (w->must_be_updated_p)
        paused_p |= update_window (w, force_p);
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 
   return paused_p;
@@ -3789,7 +3789,7 @@ update_text_area (struct window *w, int vpos)
              struct glyph *glyph = &current_row->glyphs[TEXT_AREA][i - 1];
              int left, right;
 
-             rif->get_glyph_overhangs (glyph, XFRAME (WGET (w, frame)),
+             rif->get_glyph_overhangs (glyph, XFRAME (w->frame),
                                        &left, &right);
              can_skip_p = (right == 0 && !abort_skipping);
            }
@@ -3822,7 +3822,7 @@ update_text_area (struct window *w, int vpos)
                  int left, right;
 
                  rif->get_glyph_overhangs (current_glyph,
-                                           XFRAME (WGET (w, frame)),
+                                           XFRAME (w->frame),
                                            &left, &right);
                  while (left > 0 && i > 0)
                    {
@@ -3965,7 +3965,7 @@ update_window_line (struct window *w, int vpos, int *mouse_face_overwritten_p)
 
       /* Update display of the left margin area, if there is one.  */
       if (!desired_row->full_width_p
-         && !NILP (WGET (w, left_margin_cols)))
+         && !NILP (w->left_margin_cols))
        {
          changed_p = 1;
          update_marginal_area (w, LEFT_MARGIN_AREA, vpos);
@@ -3981,7 +3981,7 @@ update_window_line (struct window *w, int vpos, int *mouse_face_overwritten_p)
 
       /* Update display of the right margin area, if there is one.  */
       if (!desired_row->full_width_p
-         && !NILP (WGET (w, right_margin_cols)))
+         && !NILP (w->right_margin_cols))
        {
          changed_p = 1;
          update_marginal_area (w, RIGHT_MARGIN_AREA, vpos);
@@ -4014,7 +4014,7 @@ update_window_line (struct window *w, int vpos, int *mouse_face_overwritten_p)
 static void
 set_window_cursor_after_update (struct window *w)
 {
-  struct frame *f = XFRAME (WGET (w, frame));
+  struct frame *f = XFRAME (w->frame);
   struct redisplay_interface *rif = FRAME_RIF (f);
   int cx, cy, vpos, hpos;
 
@@ -4100,14 +4100,14 @@ set_window_update_flags (struct window *w, int on_p)
 {
   while (w)
     {
-      if (!NILP (WGET (w, hchild)))
-       set_window_update_flags (XWINDOW (WGET (w, hchild)), on_p);
-      else if (!NILP (WGET (w, vchild)))
-       set_window_update_flags (XWINDOW (WGET (w, vchild)), on_p);
+      if (!NILP (w->hchild))
+       set_window_update_flags (XWINDOW (w->hchild), on_p);
+      else if (!NILP (w->vchild))
+       set_window_update_flags (XWINDOW (w->vchild), on_p);
       else
        w->must_be_updated_p = on_p;
 
-      w = NILP (WGET (w, next)) ? 0 : XWINDOW (WGET (w, next));
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
     }
 }
 
@@ -4790,8 +4790,8 @@ update_frame_1 (struct frame *f, int force_p, int inhibit_id_p)
              int x = WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos);
              int y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
 
-             if (INTEGERP (WGET (w, left_margin_cols)))
-               x += XFASTINT (WGET (w, left_margin_cols));
+             if (INTEGERP (w->left_margin_cols))
+               x += XFASTINT (w->left_margin_cols);
 
              /* x = max (min (x, FRAME_TOTAL_COLS (f) - 1), 0); */
              cursor_to (f, y, x);
@@ -5281,9 +5281,9 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
 
   /* We used to set current_buffer directly here, but that does the
      wrong thing with `face-remapping-alist' (bug#2044).  */
-  Fset_buffer (WGET (w, buffer));
+  Fset_buffer (w->buffer);
   itdata = bidi_shelve_cache ();
-  SET_TEXT_POS_FROM_MARKER (startp, WGET (w, start));
+  SET_TEXT_POS_FROM_MARKER (startp, w->start);
   CHARPOS (startp) = min (ZV, max (BEGV, CHARPOS (startp)));
   BYTEPOS (startp) = min (ZV_BYTE, max (BEGV_BYTE, BYTEPOS (startp)));
   start_display (&it, w, startp);
@@ -5327,7 +5327,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
   *dx = x0 + it.first_visible_x - it.current_x;
   *dy = *y - it.current_y;
 
-  string =  WGET (w, buffer);
+  string =  w->buffer;
   if (STRINGP (it.string))
     string = it.string;
   *pos = it.current;
@@ -5345,7 +5345,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
       if (STRINGP (it.string))
        BYTEPOS (pos->pos) = string_char_to_byte (string, CHARPOS (pos->pos));
       else
-       BYTEPOS (pos->pos) = buf_charpos_to_bytepos (XBUFFER (WGET (w, buffer)),
+       BYTEPOS (pos->pos) = buf_charpos_to_bytepos (XBUFFER (w->buffer),
                                                     CHARPOS (pos->pos));
     }
 
@@ -5745,8 +5745,7 @@ change_frame_size_1 (register struct frame *f, int newheight, int newwidth, int
        FrameCols (FRAME_TTY (f)) = newwidth;
 
       if (WINDOWP (f->tool_bar_window))
-       WSET (XWINDOW (f->tool_bar_window),
-             total_cols, make_number (newwidth));
+       WSET (XWINDOW (f->tool_bar_window), total_cols, make_number (newwidth));
     }
 
   FRAME_LINES (f) = newheight;