Separate read and write access to Lisp_Object slots of struct frame.
authorDmitry Antipov <dmantipov@yandex.ru>
Mon, 6 Aug 2012 05:27:54 +0000 (09:27 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Mon, 6 Aug 2012 05:27:54 +0000 (09:27 +0400)
* frame.h (FGET, FSET): New macros similar to AREF and ASET.
* buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
* fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
* print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
* xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.

28 files changed:
src/ChangeLog
src/buffer.c
src/data.c
src/dispnew.c
src/dosfns.c
src/eval.c
src/fontset.c
src/frame.c
src/frame.h
src/fringe.c
src/gtkutil.c
src/minibuf.c
src/msdos.c
src/nsfns.m
src/nsmenu.m
src/nsterm.m
src/print.c
src/term.c
src/w32fns.c
src/w32menu.c
src/w32term.c
src/window.c
src/window.h
src/xdisp.c
src/xfaces.c
src/xfns.c
src/xmenu.c
src/xterm.c

index 61e7c3d..c02f4f7 100644 (file)
@@ -1,3 +1,12 @@
+2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Separate read and write access to Lisp_Object slots of struct frame.
+       * frame.h (FGET, FSET): New macros similar to AREF and ASET.
+       * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
+       * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
+       * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
+       * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
+
 2012-08-05  Andreas Schwab  <schwab@linux-m68k.org>
 
        * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
index 37e520f..445f7be 100644 (file)
@@ -193,9 +193,9 @@ followed by the rest of the buffers.  */)
       Lisp_Object args[3];
 
       CHECK_FRAME (frame);
-      framelist = Fcopy_sequence (FVAR (XFRAME (frame), buffer_list));
+      framelist = Fcopy_sequence (FGET (XFRAME (frame), buffer_list));
       prevlist = Fnreverse (Fcopy_sequence
-                           (FVAR (XFRAME (frame), buried_buffer_list)));
+                           (FGET (XFRAME (frame), buried_buffer_list)));
 
       /* Remove from GENERAL any buffer that duplicates one in
          FRAMELIST or PREVLIST.  */
@@ -1327,7 +1327,7 @@ exists, return the buffer `*scratch*' (creating it if necessary).  */)
 
   pred = frame_buffer_predicate (frame);
   /* Consider buffers that have been seen in the frame first.  */
-  tail = FVAR (XFRAME (frame), buffer_list);
+  tail = FGET (XFRAME (frame), buffer_list);
   for (; CONSP (tail); tail = XCDR (tail))
     {
       buf = XCAR (tail);
@@ -1767,8 +1767,8 @@ record_buffer (Lisp_Object buffer)
   Vinhibit_quit = tem;
 
   /* Update buffer list of selected frame.  */
-  FVAR (f, buffer_list) = Fcons (buffer, Fdelq (buffer, FVAR (f, buffer_list)));
-  FVAR (f, buried_buffer_list) = Fdelq (buffer, FVAR (f, buried_buffer_list));
+  FSET (f, buffer_list, Fcons (buffer, Fdelq (buffer, FGET (f, buffer_list))));
+  FSET (f, buried_buffer_list, Fdelq (buffer, FGET (f, buried_buffer_list)));
 
   /* Run buffer-list-update-hook.  */
   if (!NILP (Vrun_hooks))
@@ -1805,9 +1805,9 @@ DEFUN ("bury-buffer-internal", Fbury_buffer_internal, Sbury_buffer_internal,
   Vinhibit_quit = tem;
 
   /* Update buffer lists of selected frame.  */
-  FVAR (f, buffer_list) = Fdelq (buffer, FVAR (f, buffer_list));
-  FVAR (f, buried_buffer_list)
-    = Fcons (buffer, Fdelq (buffer, FVAR (f, buried_buffer_list)));
+  FSET (f, buffer_list, Fdelq (buffer, FGET (f, buffer_list)));
+  FSET (f, buried_buffer_list,
+       Fcons (buffer, Fdelq (buffer, FGET (f, buried_buffer_list))));
 
   /* Run buffer-list-update-hook.  */
   if (!NILP (Vrun_hooks))
index f5942a8..0803cec 100644 (file)
@@ -1006,7 +1006,8 @@ swap_in_symval_forwarding (struct Lisp_Symbol *symbol, struct Lisp_Buffer_Local_
        XSETSYMBOL (var, symbol);
        if (blv->frame_local)
          {
-           tem1 = assq_no_quit (var, FVAR (XFRAME (selected_frame), param_alist));
+           tem1 = assq_no_quit (var, FGET (XFRAME (selected_frame),
+                                           param_alist));
            blv->where = selected_frame;
          }
        else
@@ -1179,7 +1180,7 @@ set_internal (register Lisp_Object symbol, register Lisp_Object newval, register
            XSETSYMBOL (symbol, sym); /* May have changed via aliasing.  */
            tem1 = Fassq (symbol,
                          (blv->frame_local
-                          ? FVAR (XFRAME (where), param_alist)
+                          ? FGET (XFRAME (where), param_alist)
                           : BVAR (XBUFFER (where), local_var_alist)));
            blv->where = where;
            blv->found = 1;
index 9246c35..63fc35f 100644 (file)
@@ -844,12 +844,12 @@ clear_current_matrices (register struct frame *f)
   /* Clear the matrix of the menu bar window, if such a window exists.
      The menu bar window is currently used to display menus on X when
      no toolkit support is compiled in.  */
-  if (WINDOWP (FVAR (f, menu_bar_window)))
-    clear_glyph_matrix (XWINDOW (FVAR (f, menu_bar_window))->current_matrix);
+  if (WINDOWP (FGET (f, menu_bar_window)))
+    clear_glyph_matrix (XWINDOW (FGET (f, menu_bar_window))->current_matrix);
 
   /* Clear the matrix of the tool-bar window, if any.  */
-  if (WINDOWP (FVAR (f, tool_bar_window)))
-    clear_glyph_matrix (XWINDOW (FVAR (f, tool_bar_window))->current_matrix);
+  if (WINDOWP (FGET (f, tool_bar_window)))
+    clear_glyph_matrix (XWINDOW (FGET (f, tool_bar_window))->current_matrix);
 
   /* Clear current window matrices.  */
   eassert (WINDOWP (FRAME_ROOT_WINDOW (f)));
@@ -865,11 +865,11 @@ clear_desired_matrices (register struct frame *f)
   if (f->desired_matrix)
     clear_glyph_matrix (f->desired_matrix);
 
-  if (WINDOWP (FVAR (f, menu_bar_window)))
-    clear_glyph_matrix (XWINDOW (FVAR (f, menu_bar_window))->desired_matrix);
+  if (WINDOWP (FGET (f, menu_bar_window)))
+    clear_glyph_matrix (XWINDOW (FGET (f, menu_bar_window))->desired_matrix);
 
-  if (WINDOWP (FVAR (f, tool_bar_window)))
-    clear_glyph_matrix (XWINDOW (FVAR (f, tool_bar_window))->desired_matrix);
+  if (WINDOWP (FGET (f, tool_bar_window)))
+    clear_glyph_matrix (XWINDOW (FGET (f, tool_bar_window))->desired_matrix);
 
   /* Do it for window matrices.  */
   eassert (WINDOWP (FRAME_ROOT_WINDOW (f)));
@@ -1904,7 +1904,7 @@ static void
 adjust_frame_glyphs_initially (void)
 {
   struct frame *sf = SELECTED_FRAME ();
-  struct window *root = XWINDOW (FVAR (sf, root_window));
+  struct window *root = XWINDOW (FGET (sf, root_window));
   struct window *mini = XWINDOW (WVAR (root, next));
   int frame_lines = FRAME_LINES (sf);
   int frame_cols = FRAME_COLS (sf);
@@ -2187,15 +2187,15 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f)
   {
     /* Allocate a dummy window if not already done.  */
     struct window *w;
-    if (NILP (FVAR (f, menu_bar_window)))
+    if (NILP (FGET (f, menu_bar_window)))
       {
-       FVAR (f, menu_bar_window) = make_window ();
-       w = XWINDOW (FVAR (f, menu_bar_window));
+       FSET (f, menu_bar_window, make_window ());
+       w = XWINDOW (FGET (f, menu_bar_window));
        XSETFRAME (WVAR (w, frame), f);
        w->pseudo_window_p = 1;
       }
     else
-      w = XWINDOW (FVAR (f, menu_bar_window));
+      w = XWINDOW (FGET (f, menu_bar_window));
 
     /* Set window dimensions to frame dimensions and allocate or
        adjust glyph matrices of W.  */
@@ -2213,15 +2213,15 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f)
     /* Allocate/ reallocate matrices of the tool bar window.  If we
        don't have a tool bar window yet, make one.  */
     struct window *w;
-    if (NILP (FVAR (f, tool_bar_window)))
+    if (NILP (FGET (f, tool_bar_window)))
       {
-       FVAR (f, tool_bar_window) = make_window ();
-       w = XWINDOW (FVAR (f, tool_bar_window));
+       FSET (f, tool_bar_window, make_window ());
+       w = XWINDOW (FGET (f, tool_bar_window));
        XSETFRAME (WVAR (w, frame), f);
        w->pseudo_window_p = 1;
       }
     else
-      w = XWINDOW (FVAR (f, tool_bar_window));
+      w = XWINDOW (FGET (f, tool_bar_window));
 
     XSETFASTINT (WVAR (w, top_line), FRAME_MENU_BAR_LINES (f));
     XSETFASTINT (WVAR (w, left_col), 0);
@@ -2281,28 +2281,28 @@ free_glyphs (struct frame *f)
       f->glyphs_initialized_p = 0;
 
       /* Release window sub-matrices.  */
-      if (!NILP (FVAR (f, root_window)))
-        free_window_matrices (XWINDOW (FVAR (f, root_window)));
+      if (!NILP (FGET (f, root_window)))
+        free_window_matrices (XWINDOW (FGET (f, root_window)));
 
       /* Free the dummy window for menu bars without X toolkit and its
         glyph matrices.  */
-      if (!NILP (FVAR (f, menu_bar_window)))
+      if (!NILP (FGET (f, menu_bar_window)))
        {
-         struct window *w = XWINDOW (FVAR (f, menu_bar_window));
+         struct window *w = XWINDOW (FGET (f, menu_bar_window));
          free_glyph_matrix (w->desired_matrix);
          free_glyph_matrix (w->current_matrix);
          w->desired_matrix = w->current_matrix = NULL;
-         FVAR (f, menu_bar_window) = Qnil;
+         FSET (f, menu_bar_window, Qnil);
        }
 
       /* Free the tool bar window and its glyph matrices.  */
-      if (!NILP (FVAR (f, tool_bar_window)))
+      if (!NILP (FGET (f, tool_bar_window)))
        {
-         struct window *w = XWINDOW (FVAR (f, tool_bar_window));
+         struct window *w = XWINDOW (FGET (f, tool_bar_window));
          free_glyph_matrix (w->desired_matrix);
          free_glyph_matrix (w->current_matrix);
          w->desired_matrix = w->current_matrix = NULL;
-         FVAR (f, tool_bar_window) = Qnil;
+         FSET (f, tool_bar_window, Qnil);
        }
 
       /* Release frame glyph matrices.  Reset fields to zero in
@@ -2725,7 +2725,7 @@ make_current (struct glyph_matrix *desired_matrix, struct glyph_matrix *current_
   /* If we are called on frame matrices, perform analogous operations
      for window matrices.  */
   if (frame_matrix_frame)
-    mirror_make_current (XWINDOW (FVAR (frame_matrix_frame, root_window)), row);
+    mirror_make_current (XWINDOW (FGET (frame_matrix_frame, root_window)), row);
 }
 
 
@@ -2823,7 +2823,7 @@ mirrored_line_dance (struct glyph_matrix *matrix, int unchanged_at_top, int nlin
 
   /* Do the same for window matrices, if MATRIX is a frame matrix.  */
   if (frame_matrix_frame)
-    mirror_line_dance (XWINDOW (FVAR (frame_matrix_frame, root_window)),
+    mirror_line_dance (XWINDOW (FGET (frame_matrix_frame, root_window)),
                       unchanged_at_top, nlines, copy_from, retained_p);
 }
 
@@ -3186,7 +3186,7 @@ update_frame (struct frame *f, int force_p, int inhibit_hairy_id_p)
 {
   /* 1 means display has been paused because of pending input.  */
   int paused_p;
-  struct window *root_window = XWINDOW (FVAR (f, root_window));
+  struct window *root_window = XWINDOW (FGET (f, root_window));
 
   if (redisplay_dont_pause)
     force_p = 1;
@@ -3221,13 +3221,13 @@ update_frame (struct frame *f, int force_p, int inhibit_hairy_id_p)
 
       /* Update the menu bar on X frames that don't have toolkit
         support.  */
-      if (WINDOWP (FVAR (f, menu_bar_window)))
-       update_window (XWINDOW (FVAR (f, menu_bar_window)), 1);
+      if (WINDOWP (FGET (f, menu_bar_window)))
+       update_window (XWINDOW (FGET (f, menu_bar_window)), 1);
 
       /* Update the tool-bar window, if present.  */
-      if (WINDOWP (FVAR (f, tool_bar_window)))
+      if (WINDOWP (FGET (f, tool_bar_window)))
        {
-         struct window *w = XWINDOW (FVAR (f, tool_bar_window));
+         struct window *w = XWINDOW (FGET (f, tool_bar_window));
 
          /* Update tool-bar window.  */
          if (w->must_be_updated_p)
@@ -3239,10 +3239,10 @@ update_frame (struct frame *f, int force_p, int inhibit_hairy_id_p)
 
              /* Swap tool-bar strings.  We swap because we want to
                 reuse strings.  */
-             tem = FVAR (f, current_tool_bar_string);
-             FVAR (f, current_tool_bar_string) = FVAR (f,
-                                                      desired_tool_bar_string);
-             FVAR (f, desired_tool_bar_string) = tem;
+             tem = FGET (f, current_tool_bar_string);
+             FSET (f, current_tool_bar_string,
+                   FGET (f, desired_tool_bar_string));
+             FSET (f, desired_tool_bar_string, tem);
            }
        }
 
@@ -5764,8 +5764,8 @@ change_frame_size_1 (register struct frame *f, int newheight, int newwidth, int
       if ((FRAME_TERMCAP_P (f) && !pretend) || FRAME_MSDOS_P (f))
        FrameCols (FRAME_TTY (f)) = newwidth;
 
-      if (WINDOWP (FVAR (f, tool_bar_window)))
-       XSETFASTINT (WVAR (XWINDOW (FVAR (f, tool_bar_window)), total_cols), newwidth);
+      if (WINDOWP (FGET (f, tool_bar_window)))
+       XSETFASTINT (WVAR (XWINDOW (FGET (f, tool_bar_window)), total_cols), newwidth);
     }
 
   FRAME_LINES (f) = newheight;
@@ -6089,7 +6089,7 @@ pass nil for VARIABLE.  */)
        goto changed;
       if (vecp == end)
        goto changed;
-      if (!EQ (*vecp++, FVAR (XFRAME (frame), name)))
+      if (!EQ (*vecp++, FGET (XFRAME (frame), name)))
        goto changed;
     }
   /* Check that the buffer info matches.  */
@@ -6146,7 +6146,7 @@ pass nil for VARIABLE.  */)
   FOR_EACH_FRAME (tail, frame)
     {
       *vecp++ = frame;
-      *vecp++ = FVAR (XFRAME (frame), name);
+      *vecp++ = FGET (XFRAME (frame), name);
     }
   for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail))
     {
index 162a983..20efc3d 100644 (file)
@@ -468,15 +468,15 @@ void
 x_set_title (struct frame *f, Lisp_Object name)
 {
   /* Don't change the title if it's already NAME.  */
-  if (EQ (name, FVAR (f, title)))
+  if (EQ (name, FGET (f, title)))
     return;
 
   update_mode_lines = 1;
 
-  FVAR (f, title) = name;
+  FSET (f, title, name);
 
   if (NILP (name))
-    name = FVAR (f, name);
+    name = FGET (f, name);
 
   if (FRAME_MSDOS_P (f))
     {
index 5eb144e..e6d4a4c 100644 (file)
@@ -3254,7 +3254,7 @@ unbind_to (ptrdiff_t count, Lisp_Object value)
             local binding, but only if that binding still exists.  */
          else if (BUFFERP (where)
                   ? !NILP (Flocal_variable_p (symbol, where))
-                  : !NILP (Fassq (symbol, FVAR (XFRAME (where), param_alist))))
+                  : !NILP (Fassq (symbol, FGET (XFRAME (where), param_alist))))
            set_internal (symbol, this_binding.old_value, where, 1);
        }
       /* If variable has a trivial value (no forwarding), we can
index 7ea1dee..7f6fded 100644 (file)
@@ -2118,7 +2118,7 @@ dump_fontset (Lisp_Object fontset)
          if (FRAME_LIVE_P (f))
            ASET (vec, 1,
                  Fcons (FONTSET_NAME (FONTSET_BASE (fontset)),
-                        FVAR (f, name)));
+                        FGET (f, name)));
          else
            ASET (vec, 1,
                  Fcons (FONTSET_NAME (FONTSET_BASE (fontset)), Qnil));
index 308179e..f488a53 100644 (file)
@@ -170,7 +170,7 @@ set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
       windows_or_buffers_changed++;
       FRAME_WINDOW_SIZES_CHANGED (f) = 1;
       FRAME_MENU_BAR_LINES (f) = nlines;
-      set_menu_bar_lines_1 (FVAR (f, root_window), nlines - olines);
+      set_menu_bar_lines_1 (FGET (f, root_window), nlines - olines);
       adjust_glyphs (f);
     }
 }
@@ -269,7 +269,7 @@ make_frame (int mini_p)
 
   /* Initialize Lisp data.  Note that allocate_frame initializes all
      Lisp data to nil, so do it only for slots which should not be nil.  */
-  FVAR (f, tool_bar_position) = Qtop;
+  FSET (f, tool_bar_position, Qtop);
 
   /* Initialize non-Lisp data.  Note that allocate_frame zeroes out all
      non-Lisp data, so do it only for slots which should not be zero.
@@ -293,13 +293,13 @@ make_frame (int mini_p)
       WVAR (XWINDOW (mini_window), prev) = root_window;
       XWINDOW (mini_window)->mini = 1;
       WVAR (XWINDOW (mini_window), frame) = frame;
-      FVAR (f, minibuffer_window) = mini_window;
+      FSET (f, minibuffer_window, mini_window);
     }
   else
     {
       mini_window = Qnil;
       WVAR (XWINDOW (root_window), next) = Qnil;
-      FVAR (f, minibuffer_window) = Qnil;
+      FSET (f, minibuffer_window, Qnil);
     }
 
   WVAR (XWINDOW (root_window), frame) = frame;
@@ -339,7 +339,7 @@ make_frame (int mini_p)
        etc.  Running Lisp functions at this point surely ends in a
        SEGV.  */
     set_window_buffer (root_window, buf, 0, 0);
-    FVAR (f, buffer_list) = Fcons (buf, Qnil);
+    FSET (f, buffer_list, Fcons (buf, Qnil));
   }
 
   if (mini_p)
@@ -352,11 +352,11 @@ make_frame (int mini_p)
                         0, 0);
     }
 
-  FVAR (f, root_window) = root_window;
-  FVAR (f, selected_window) = root_window;
+  FSET (f, root_window, root_window);
+  FSET (f, selected_window, root_window);
   /* Make sure this window seems more recently used than
      a newly-created, never-selected window.  */
-  XWINDOW (FVAR (f, selected_window))->use_time = ++window_select_count;
+  XWINDOW (FGET (f, selected_window))->use_time = ++window_select_count;
 
   return f;
 }
@@ -398,11 +398,11 @@ make_frame_without_minibuffer (register Lisp_Object mini_window, KBOARD *kb, Lis
           UNGCPRO;
        }
 
-      mini_window = FVAR (XFRAME (KVAR (kb, Vdefault_minibuffer_frame)),
-                         minibuffer_window);
+      mini_window = FGET (XFRAME (KVAR (kb, Vdefault_minibuffer_frame)),
+                         minibuffer_window);
     }
 
-  FVAR (f, minibuffer_window) = mini_window;
+  FSET (f, minibuffer_window, mini_window);
 
   /* Make the chosen minibuffer window display the proper minibuffer,
      unless it is already showing a minibuffer.  */
@@ -437,7 +437,7 @@ make_minibuffer_frame (void)
      Avoid infinite looping on the window chain by marking next pointer
      as nil. */
 
-  mini_window = FVAR (f, minibuffer_window) = FVAR (f, root_window);
+  mini_window = FSET (f, minibuffer_window, FGET (f, root_window));
   XWINDOW (mini_window)->mini = 1;
   WVAR (XWINDOW (mini_window), next) = Qnil;
   WVAR (XWINDOW (mini_window), prev) = Qnil;
@@ -478,7 +478,7 @@ make_initial_frame (void)
   Vframe_list = Fcons (frame, Vframe_list);
 
   tty_frame_count = 1;
-  FVAR (f, name) = build_pure_c_string ("F1");
+  FSET (f, name, build_pure_c_string ("F1"));
 
   f->visible = 1;
   f->async_visible = 1;
@@ -519,7 +519,7 @@ make_terminal_frame (struct terminal *terminal)
   XSETFRAME (frame, f);
   Vframe_list = Fcons (frame, Vframe_list);
 
-  FVAR (f, name) = make_formatted_string (name, "F%"pMd, ++tty_frame_count);
+  FSET (f, name, make_formatted_string (name, "F%"pMd, ++tty_frame_count));
 
   f->visible = 1;              /* FRAME_SET_VISIBLE wd set frame_garbaged. */
   f->async_visible = 1;                /* Don't let visible be cleared later. */
@@ -570,7 +570,7 @@ get_future_frame_param (Lisp_Object parameter,
 
   result = Fassq (parameter, supplied_parms);
   if (NILP (result))
-    result = Fassq (parameter, FVAR (XFRAME (selected_frame), param_alist));
+    result = Fassq (parameter, FGET (XFRAME (selected_frame), param_alist));
   if (NILP (result) && current_value != NULL)
     result = build_string (current_value);
   if (!NILP (result) && !STRINGP (result))
@@ -689,11 +689,11 @@ affects all frames on the same terminal device.  */)
 
   /* Make the frame face alist be frame-specific, so that each
      frame could change its face definitions independently.  */
-  FVAR (f, face_alist) = Fcopy_alist (FVAR (sf, face_alist));
+  FSET (f, face_alist, Fcopy_alist (FGET (sf, face_alist)));
   /* Simple Fcopy_alist isn't enough, because we need the contents of
      the vectors which are the CDRs of associations in face_alist to
      be copied as well.  */
-  for (tem = FVAR (f, face_alist); CONSP (tem); tem = XCDR (tem))
+  for (tem = FGET (f, face_alist); CONSP (tem); tem = XCDR (tem))
     XSETCDR (XCAR (tem), Fcopy_sequence (XCDR (XCAR (tem))));
   return frame;
 }
@@ -797,7 +797,7 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor
   if (! FRAME_MINIBUF_ONLY_P (XFRAME (selected_frame)))
     last_nonminibuf_frame = XFRAME (selected_frame);
 
-  Fselect_window (FVAR (XFRAME (frame), selected_window), norecord);
+  Fselect_window (FGET (XFRAME (frame), selected_window), norecord);
 
   /* We want to make sure that the next event generates a frame-switch
      event to the appropriate frame.  This seems kludgy to me, but
@@ -1238,11 +1238,11 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
     }
 
   /* Don't allow minibuf_window to remain on a deleted frame.  */
-  if (EQ (FVAR (f, minibuffer_window), minibuf_window))
+  if (EQ (FGET (f, minibuffer_window), minibuf_window))
     {
-      Fset_window_buffer (FVAR (sf, minibuffer_window),
+      Fset_window_buffer (FGET (sf, minibuffer_window),
                          WVAR (XWINDOW (minibuf_window), buffer), Qnil);
-      minibuf_window = FVAR (sf, minibuffer_window);
+      minibuf_window = FGET (sf, minibuffer_window);
 
       /* If the dying minibuffer window was selected,
         select the new one.  */
@@ -1251,8 +1251,8 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
     }
 
   /* Don't let echo_area_window to remain on a deleted frame.  */
-  if (EQ (FVAR (f, minibuffer_window), echo_area_window))
-    echo_area_window = FVAR (sf, minibuffer_window);
+  if (EQ (FGET (f, minibuffer_window), echo_area_window))
+    echo_area_window = FGET (sf, minibuffer_window);
 
   /* Clear any X selections for this frame.  */
 #ifdef HAVE_X_WINDOWS
@@ -1273,8 +1273,8 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
 
   /* Mark all the windows that used to be on FRAME as deleted, and then
      remove the reference to them.  */
-  delete_all_child_windows (FVAR (f, root_window));
-  FVAR (f, root_window) = Qnil;
+  delete_all_child_windows (FGET (f, root_window));
+  FSET (f, root_window, Qnil);
 
   Vframe_list = Fdelq (frame, Vframe_list);
   FRAME_SET_VISIBLE (f, 0);
@@ -1283,7 +1283,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
      garbage collection.  The frame object itself may not be garbage
      collected until much later, because recent_keys and other data
      structures can still refer to it.  */
-  FVAR (f, menu_bar_vector) = Qnil;
+  FSET (f, menu_bar_vector, Qnil);
 
   free_font_driver_list (f);
   xfree (f->namebuf);
@@ -1656,7 +1656,7 @@ If omitted, FRAME defaults to the currently selected frame.  */)
     }
 #endif
 
-  make_frame_visible_1 (FVAR (XFRAME (frame), root_window));
+  make_frame_visible_1 (FGET (XFRAME (frame), root_window));
 
   /* Make menu bar update for the Buffers and Frames menus.  */
   windows_or_buffers_changed++;
@@ -1710,12 +1710,12 @@ displayed in the terminal.  */)
     error ("Attempt to make invisible the sole visible or iconified frame");
 
   /* Don't allow minibuf_window to remain on a deleted frame.  */
-  if (EQ (FVAR (XFRAME (frame), minibuffer_window), minibuf_window))
+  if (EQ (FGET (XFRAME (frame), minibuffer_window), minibuf_window))
     {
       struct frame *sf = XFRAME (selected_frame);
-      Fset_window_buffer (FVAR (sf, minibuffer_window),
+      Fset_window_buffer (FGET (sf, minibuffer_window),
                          WVAR (XWINDOW (minibuf_window), buffer), Qnil);
-      minibuf_window = FVAR (sf, minibuffer_window);
+      minibuf_window = FGET (sf, minibuffer_window);
     }
 
   /* I think this should be done with a hook.  */
@@ -1748,12 +1748,12 @@ If omitted, FRAME defaults to the currently selected frame.  */)
 #endif
 
   /* Don't allow minibuf_window to remain on a deleted frame.  */
-  if (EQ (FVAR (XFRAME (frame), minibuffer_window), minibuf_window))
+  if (EQ (FGET (XFRAME (frame), minibuffer_window), minibuf_window))
     {
       struct frame *sf = XFRAME (selected_frame);
-      Fset_window_buffer (FVAR (sf, minibuffer_window),
+      Fset_window_buffer (FGET (sf, minibuffer_window),
                          WVAR (XWINDOW (minibuf_window), buffer), Qnil);
-      minibuf_window = FVAR (sf, minibuffer_window);
+      minibuf_window = FGET (sf, minibuffer_window);
     }
 
   /* I think this should be done with a hook.  */
@@ -1907,7 +1907,7 @@ The redirection lasts until `redirect-frame-focus' is called to change it.  */)
 
   f = XFRAME (frame);
 
-  FVAR (f, focus_frame) = focus_frame;
+  FSET (f, focus_frame, focus_frame);
 
   if (FRAME_TERMINAL (f)->frame_rehighlight_hook)
     (*FRAME_TERMINAL (f)->frame_rehighlight_hook) (f);
@@ -1940,7 +1940,7 @@ get_frame_param (register struct frame *frame, Lisp_Object prop)
 {
   register Lisp_Object tem;
 
-  tem = Fassq (prop, FVAR (frame, param_alist));
+  tem = Fassq (prop, FGET (frame, param_alist));
   if (EQ (tem, Qnil))
     return tem;
   return Fcdr (tem);
@@ -1952,7 +1952,7 @@ get_frame_param (register struct frame *frame, Lisp_Object prop)
 Lisp_Object
 frame_buffer_predicate (Lisp_Object frame)
 {
-  return FVAR (XFRAME (frame), buffer_predicate);
+  return FGET (XFRAME (frame), buffer_predicate);
 }
 
 /* Return the buffer-list of the selected frame.  */
@@ -1960,7 +1960,7 @@ frame_buffer_predicate (Lisp_Object frame)
 static Lisp_Object
 frame_buffer_list (Lisp_Object frame)
 {
-  return FVAR (XFRAME (frame), buffer_list);
+  return FGET (XFRAME (frame), buffer_list);
 }
 
 /* Discard BUFFER from the buffer-list and buried-buffer-list of each frame.  */
@@ -1972,10 +1972,10 @@ frames_discard_buffer (Lisp_Object buffer)
 
   FOR_EACH_FRAME (tail, frame)
     {
-      FVAR (XFRAME (frame), buffer_list)
-       = Fdelq (buffer, FVAR (XFRAME (frame), buffer_list));
-      FVAR (XFRAME (frame), buried_buffer_list)
-        = Fdelq (buffer, FVAR (XFRAME (frame), buried_buffer_list));
+      FSET (XFRAME (frame), buffer_list,
+           Fdelq (buffer, FGET (XFRAME (frame), buffer_list)));
+      FSET (XFRAME (frame), buried_buffer_list,
+           Fdelq (buffer, FGET (XFRAME (frame), buried_buffer_list)));
     }
 }
 
@@ -2023,8 +2023,8 @@ set_term_frame_name (struct frame *f, Lisp_Object name)
 
       /* Check for no change needed in this very common case
         before we do any consing.  */
-      if (frame_name_fnn_p (SSDATA (FVAR (f, name)),
-                           SBYTES (FVAR (f, name))))
+      if (frame_name_fnn_p (SSDATA (FGET (f, name)),
+                           SBYTES (FGET (f, name))))
        return;
 
       name = make_formatted_string (namebuf, "F%"pMd, ++tty_frame_count);
@@ -2034,7 +2034,7 @@ set_term_frame_name (struct frame *f, Lisp_Object name)
       CHECK_STRING (name);
 
       /* Don't change the name if it's already NAME.  */
-      if (! NILP (Fstring_equal (name, FVAR (f, name))))
+      if (! NILP (Fstring_equal (name, FGET (f, name))))
        return;
 
       /* Don't allow the user to set the frame name to F<num>, so it
@@ -2043,7 +2043,7 @@ set_term_frame_name (struct frame *f, Lisp_Object name)
        error ("Frame names of the form F<num> are usurped by Emacs");
     }
 
-  FVAR (f, name) = name;
+  FSET (f, name, name);
   update_mode_lines = 1;
 }
 
@@ -2060,7 +2060,7 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
       for (; CONSP (val); val = XCDR (val))
        if (!NILP (Fbuffer_live_p (XCAR (val))))
          list = Fcons (XCAR (val), list);
-      FVAR (f, buffer_list) = Fnreverse (list);
+      FSET (f, buffer_list, Fnreverse (list));
       return;
     }
   if (EQ (prop, Qburied_buffer_list))
@@ -2069,7 +2069,7 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
       for (; CONSP (val); val = XCDR (val))
        if (!NILP (Fbuffer_live_p (XCAR (val))))
          list = Fcons (XCAR (val), list);
-      FVAR (f, buried_buffer_list) = Fnreverse (list);
+      FSET (f, buried_buffer_list, Fnreverse (list));
       return;
     }
 
@@ -2104,9 +2104,9 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
     FRAME_TTY (f)->previous_frame = NULL;
 
   /* Update the frame parameter alist.  */
-  old_alist_elt = Fassq (prop, FVAR (f, param_alist));
+  old_alist_elt = Fassq (prop, FGET (f, param_alist));
   if (EQ (old_alist_elt, Qnil))
-    FVAR (f, param_alist) = Fcons (Fcons (prop, val), FVAR (f, param_alist));
+    FSET (f, param_alist, Fcons (Fcons (prop, val), FGET (f, param_alist)));
   else
     Fsetcdr (old_alist_elt, val);
 
@@ -2114,7 +2114,7 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
      in addition to the alist.  */
 
   if (EQ (prop, Qbuffer_predicate))
-    FVAR (f, buffer_predicate) = val;
+    FSET (f, buffer_predicate, val);
 
   if (! FRAME_WINDOW_P (f))
     {
@@ -2130,11 +2130,11 @@ store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
        error ("Surrogate minibuffer windows must be minibuffer windows");
 
       if ((FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f))
-         && !EQ (val, FVAR (f, minibuffer_window)))
+         && !EQ (val, FGET (f, minibuffer_window)))
        error ("Can't change the surrogate minibuffer of a frame with its own minibuffer");
 
       /* Install the chosen minibuffer window, with proper buffer.  */
-      FVAR (f, minibuffer_window) = val;
+      FSET (f, minibuffer_window, val);
     }
 }
 
@@ -2159,7 +2159,7 @@ If FRAME is omitted, return information on the currently selected frame.  */)
   if (!FRAME_LIVE_P (f))
     return Qnil;
 
-  alist = Fcopy_alist (FVAR (f, param_alist));
+  alist = Fcopy_alist (FGET (f, param_alist));
   GCPRO1 (alist);
 
   if (!FRAME_WINDOW_P (f))
@@ -2205,7 +2205,7 @@ If FRAME is omitted, return information on the currently selected frame.  */)
                                    : FRAME_W32_P (f) ? "w32term"
                                    :"tty"));
     }
-  store_in_alist (&alist, Qname, FVAR (f, name));
+  store_in_alist (&alist, Qname, FGET (f, name));
   height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
   store_in_alist (&alist, Qheight, make_number (height));
   width = (f->new_text_cols ? f->new_text_cols : FRAME_COLS (f));
@@ -2218,7 +2218,7 @@ If FRAME is omitted, return information on the currently selected frame.  */)
   store_in_alist (&alist, Qunsplittable, (FRAME_NO_SPLIT_P (f) ? Qt : Qnil));
   store_in_alist (&alist, Qbuffer_list, frame_buffer_list (frame));
   store_in_alist (&alist, Qburied_buffer_list,
-                 FVAR (XFRAME (frame), buried_buffer_list));
+                 FGET (XFRAME (frame), buried_buffer_list));
 
   /* I think this should be done with a hook.  */
 #ifdef HAVE_WINDOW_SYSTEM
@@ -2259,7 +2259,7 @@ If FRAME is nil, describe the currently selected frame.  */)
     {
       /* Avoid consing in frequent cases.  */
       if (EQ (parameter, Qname))
-       value = FVAR (f, name);
+       value = FGET (f, name);
 #ifdef HAVE_X_WINDOWS
       else if (EQ (parameter, Qdisplay) && FRAME_X_P (f))
        value = XCAR (FRAME_X_DISPLAY_INFO (f)->name_list_element);
@@ -2267,7 +2267,7 @@ If FRAME is nil, describe the currently selected frame.  */)
       else if (EQ (parameter, Qbackground_color)
               || EQ (parameter, Qforeground_color))
        {
-         value = Fassq (parameter, FVAR (f, param_alist));
+         value = Fassq (parameter, FGET (f, param_alist));
          if (CONSP (value))
            {
              value = XCDR (value);
@@ -2305,7 +2305,7 @@ If FRAME is nil, describe the currently selected frame.  */)
        }
       else if (EQ (parameter, Qdisplay_type)
               || EQ (parameter, Qbackground_mode))
-       value = Fcdr (Fassq (parameter, FVAR (f, param_alist)));
+       value = Fcdr (Fassq (parameter, FGET (f, param_alist)));
       else
        /* FIXME: Avoid this code path at all (as well as code duplication)
           by sharing more code with Fframe_parameters.  */
@@ -2891,14 +2891,14 @@ x_set_frame_parameters (FRAME_PTR f, Lisp_Object alist)
   if (! TYPE_RANGED_INTEGERP (int, icon_left))
     {
       icon_left_no_change = 1;
-      icon_left = Fcdr (Fassq (Qicon_left, FVAR (f, param_alist)));
+      icon_left = Fcdr (Fassq (Qicon_left, FGET (f, param_alist)));
       if (NILP (icon_left))
        XSETINT (icon_left, 0);
     }
   if (! TYPE_RANGED_INTEGERP (int, icon_top))
     {
       icon_top_no_change = 1;
-      icon_top = Fcdr (Fassq (Qicon_top, FVAR (f, param_alist)));
+      icon_top = Fcdr (Fassq (Qicon_top, FGET (f, param_alist)));
       if (NILP (icon_top))
        XSETINT (icon_top, 0);
     }
@@ -3058,7 +3058,7 @@ x_report_frame_params (struct frame *f, Lisp_Object *alistptr)
   store_in_alist (alistptr, Qouter_window_id,
                  make_formatted_string (buf, "%lu", w));
 #endif
-  store_in_alist (alistptr, Qicon_name, FVAR (f, icon_name));
+  store_in_alist (alistptr, Qicon_name, FGET (f, icon_name));
   FRAME_SAMPLE_VISIBILITY (f);
   store_in_alist (alistptr, Qvisibility,
                  (FRAME_VISIBLE_P (f) ? Qt
@@ -3072,7 +3072,7 @@ x_report_frame_params (struct frame *f, Lisp_Object *alistptr)
     XSETFASTINT (tem, FRAME_X_OUTPUT (f)->parent_desc);
   store_in_alist (alistptr, Qexplicit_name, (f->explicit_name ? Qt : Qnil));
   store_in_alist (alistptr, Qparent_id, tem);
-  store_in_alist (alistptr, Qtool_bar_position, FVAR (f, tool_bar_position));
+  store_in_alist (alistptr, Qtool_bar_position, FGET (f, tool_bar_position));
 }
 
 
@@ -3132,7 +3132,7 @@ x_set_screen_gamma (struct frame *f, Lisp_Object new_value, Lisp_Object old_valu
     signal_error ("Invalid screen-gamma", new_value);
 
   /* Apply the new gamma value to the frame background.  */
-  bgcolor = Fassq (Qbackground_color, FVAR (f, param_alist));
+  bgcolor = Fassq (Qbackground_color, FGET (f, param_alist));
   if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor)))
     {
       Lisp_Object parm_index = Fget (Qbackground_color, Qx_frame_parameter);
@@ -3461,7 +3461,7 @@ x_icon_type (FRAME_PTR f)
 {
   Lisp_Object tem;
 
-  tem = assq_no_quit (Qicon_type, FVAR (f, param_alist));
+  tem = assq_no_quit (Qicon_type, FGET (f, param_alist));
   if (CONSP (tem))
     return XCDR (tem);
   else
index 22c0125..cf9d48f 100644 (file)
@@ -80,9 +80,15 @@ struct terminal;
 
 struct font_driver_list;
 
-/* Most code should use this macro to access Lisp fields in struct frame.  */
+/* Most code should use these macros to access Lisp fields
+   in struct frame.  FGET should not be used as lvalue.  */
 
-#define FVAR(frame, field) ((frame)->INTERNAL_FIELD (field))
+#define FGET(f, field)                                 \
+  (eassert (offsetof (struct frame, field ## _)                \
+           < offsetof (struct frame, face_cache)),     \
+   ((f)->INTERNAL_FIELD (field)))
+
+#define FSET(f, field, value) ((f)->INTERNAL_FIELD (field) = (value))
 
 struct frame
 {
@@ -640,13 +646,13 @@ typedef struct frame *FRAME_PTR;
 #define FRAME_WINDOW_SIZES_CHANGED(f) (f)->window_sizes_changed
 
 /* The minibuffer window of frame F, if it has one; otherwise nil.  */
-#define FRAME_MINIBUF_WINDOW(f) FVAR (f, minibuffer_window)
+#define FRAME_MINIBUF_WINDOW(f) FGET (f, minibuffer_window)
 
 /* The root window of the window tree of frame F.  */
-#define FRAME_ROOT_WINDOW(f) FVAR (f, root_window)
+#define FRAME_ROOT_WINDOW(f) FGET (f, root_window)
 
 /* The currently selected window of the window tree of frame F.  */
-#define FRAME_SELECTED_WINDOW(f) FVAR (f, selected_window)
+#define FRAME_SELECTED_WINDOW(f) FGET (f, selected_window)
 
 #define FRAME_INSERT_COST(f) (f)->insert_line_cost
 #define FRAME_DELETE_COST(f) (f)->delete_line_cost
@@ -654,7 +660,7 @@ typedef struct frame *FRAME_PTR;
 #define FRAME_DELETEN_COST(f) (f)->delete_n_lines_cost
 #define FRAME_MESSAGE_BUF(f) (f)->message_buf
 #define FRAME_SCROLL_BOTTOM_VPOS(f) (f)->scroll_bottom_vpos
-#define FRAME_FOCUS_FRAME(f) FVAR (f, focus_frame)
+#define FRAME_FOCUS_FRAME(f) FGET (f, focus_frame)
 
 /* Nonzero if frame F supports scroll bars.
    If this is zero, then it is impossible to enable scroll bars
@@ -755,10 +761,10 @@ typedef struct frame *FRAME_PTR;
 
 /* Nonzero if frame F has scroll bars.  */
 
-#define FRAME_SCROLL_BARS(f) (FVAR (f, scroll_bars))
+#define FRAME_SCROLL_BARS(f) (FGET (f, scroll_bars))
 
-#define FRAME_CONDEMNED_SCROLL_BARS(f) (FVAR (f, condemned_scroll_bars))
-#define FRAME_MENU_BAR_ITEMS(f) (FVAR (f, menu_bar_items))
+#define FRAME_CONDEMNED_SCROLL_BARS(f) (FGET (f, condemned_scroll_bars))
+#define FRAME_MENU_BAR_ITEMS(f) (FGET (f, menu_bar_items))
 #define FRAME_COST_BAUD_RATE(f) ((f)->cost_calculation_baud_rate)
 
 #define FRAME_DESIRED_CURSOR(f) ((f)->desired_cursor)
index 3745229..95aec9e 100644 (file)
@@ -1338,8 +1338,8 @@ compute_fringe_widths (struct frame *f, int redraw)
   int o_right = FRAME_RIGHT_FRINGE_WIDTH (f);
   int o_cols = FRAME_FRINGE_COLS (f);
 
-  Lisp_Object left_fringe = Fassq (Qleft_fringe, FVAR (f, param_alist));
-  Lisp_Object right_fringe = Fassq (Qright_fringe, FVAR (f, param_alist));
+  Lisp_Object left_fringe = Fassq (Qleft_fringe, FGET (f, param_alist));
+  Lisp_Object right_fringe = Fassq (Qright_fringe, FGET (f, param_alist));
   int left_fringe_width, right_fringe_width;
 
   if (!NILP (left_fringe))
index aca5d65..478f9f3 100644 (file)
@@ -1148,10 +1148,10 @@ xg_create_frame_widgets (FRAME_PTR f)
   gtk_widget_set_name (wfixed, SSDATA (Vx_resource_name));
 
   /* If this frame has a title or name, set it in the title bar.  */
-  if (! NILP (FVAR (f, title)))
-    title = SSDATA (ENCODE_UTF_8 (FVAR (f, title)));
-  else if (! NILP (FVAR (f, name)))
-    title = SSDATA (ENCODE_UTF_8 (FVAR (f, name)));
+  if (! NILP (FGET (f, title)))
+    title = SSDATA (ENCODE_UTF_8 (FGET (f, title)));
+  else if (! NILP (FGET (f, name)))
+    title = SSDATA (ENCODE_UTF_8 (FGET (f, name)));
 
   if (title) gtk_window_set_title (GTK_WINDOW (wtop), title);
 
@@ -2061,7 +2061,7 @@ make_cl_data (xg_menu_cb_data *cl_data, FRAME_PTR f, GCallback highlight_cb)
     {
       cl_data = xmalloc (sizeof *cl_data);
       cl_data->f = f;
-      cl_data->menu_bar_vector = FVAR (f, menu_bar_vector);
+      cl_data->menu_bar_vector = FGET (f, menu_bar_vector);
       cl_data->menu_bar_items_used = f->menu_bar_items_used;
       cl_data->highlight_cb = highlight_cb;
       cl_data->ref_count = 0;
@@ -2093,7 +2093,7 @@ update_cl_data (xg_menu_cb_data *cl_data,
   if (cl_data)
     {
       cl_data->f = f;
-      cl_data->menu_bar_vector = FVAR (f, menu_bar_vector);
+      cl_data->menu_bar_vector = FGET (f, menu_bar_vector);
       cl_data->menu_bar_items_used = f->menu_bar_items_used;
       cl_data->highlight_cb = highlight_cb;
     }
@@ -3810,12 +3810,12 @@ xg_tool_bar_callback (GtkWidget *w, gpointer client_data)
   struct input_event event;
   EVENT_INIT (event);
 
-  if (! f || ! f->n_tool_bar_items || NILP (FVAR (f, tool_bar_items)))
+  if (! f || ! f->n_tool_bar_items || NILP (FGET (f, tool_bar_items)))
     return;
 
   idx *= TOOL_BAR_ITEM_NSLOTS;
 
-  key = AREF (FVAR (f, tool_bar_items), idx + TOOL_BAR_ITEM_KEY);
+  key = AREF (FGET (f, tool_bar_items), idx + TOOL_BAR_ITEM_KEY);
   XSETFRAME (frame, f);
 
   /* We generate two events here.  The first one is to set the prefix
@@ -4086,16 +4086,16 @@ xg_tool_bar_help_callback (GtkWidget *w,
   FRAME_PTR f = (FRAME_PTR) g_object_get_data (G_OBJECT (w), XG_FRAME_DATA);
   Lisp_Object help, frame;
 
-  if (! f || ! f->n_tool_bar_items || NILP (FVAR (f, tool_bar_items)))
+  if (! f || ! f->n_tool_bar_items || NILP (FGET (f, tool_bar_items)))
     return FALSE;
 
   if (event->type == GDK_ENTER_NOTIFY)
     {
       idx *= TOOL_BAR_ITEM_NSLOTS;
-      help = AREF (FVAR (f, tool_bar_items), idx + TOOL_BAR_ITEM_HELP);
+      help = AREF (FGET (f, tool_bar_items), idx + TOOL_BAR_ITEM_HELP);
 
       if (NILP (help))
-        help = AREF (FVAR (f, tool_bar_items), idx + TOOL_BAR_ITEM_CAPTION);
+        help = AREF (FGET (f, tool_bar_items), idx + TOOL_BAR_ITEM_CAPTION);
     }
   else
     help = Qnil;
@@ -4223,7 +4223,7 @@ xg_create_tool_bar (FRAME_PTR f)
 }
 
 
-#define PROP(IDX) AREF (FVAR (f, tool_bar_items), i * TOOL_BAR_ITEM_NSLOTS + (IDX))
+#define PROP(IDX) AREF (FGET (f, tool_bar_items), i * TOOL_BAR_ITEM_NSLOTS + (IDX))
 
 /* Find the right-to-left image named by RTL in the tool bar images for F.
    Returns IMAGE if RTL is not found.  */
@@ -4706,7 +4706,7 @@ update_frame_tool_bar (FRAME_PTR f)
   if (f->n_tool_bar_items != 0)
     {
       if (pack_tool_bar)
-        xg_pack_tool_bar (f, FVAR (f, tool_bar_position));
+        xg_pack_tool_bar (f, FGET (f, tool_bar_position));
       gtk_widget_show_all (GTK_WIDGET (x->handlebox_widget));
       if (xg_update_tool_bar_sizes (f))
         xg_height_or_width_changed (f);
index cfe813f..a5f963d 100644 (file)
@@ -102,14 +102,14 @@ choose_minibuf_frame (void)
 {
   if (FRAMEP (selected_frame)
       && FRAME_LIVE_P (XFRAME (selected_frame))
-      && !EQ (minibuf_window, FVAR (XFRAME (selected_frame), minibuffer_window)))
+      && !EQ (minibuf_window, FGET (XFRAME (selected_frame), minibuffer_window)))
     {
       struct frame *sf = XFRAME (selected_frame);
       Lisp_Object buffer;
 
       /* I don't think that any frames may validly have a null minibuffer
         window anymore.  */
-      if (NILP (FVAR (sf, minibuffer_window)))
+      if (NILP (FGET (sf, minibuffer_window)))
        abort ();
 
       /* Under X, we come here with minibuf_window being the
@@ -117,8 +117,8 @@ choose_minibuf_frame (void)
         init_window_once.  That window doesn't have a buffer.  */
       buffer = WVAR (XWINDOW (minibuf_window), buffer);
       if (BUFFERP (buffer))
-       Fset_window_buffer (FVAR (sf, minibuffer_window), buffer, Qnil);
-      minibuf_window = FVAR (sf, minibuffer_window);
+       Fset_window_buffer (FGET (sf, minibuffer_window), buffer, Qnil);
+      minibuf_window = FGET (sf, minibuffer_window);
     }
 
   /* Make sure no other frame has a minibuffer as its selected window,
index 93af0d6..8ff0387 100644 (file)
@@ -1318,8 +1318,8 @@ IT_frame_up_to_date (struct frame *f)
      frame parameters.  For the selected window, we use either its
      buffer-local value or the value from the frame parameters if the
      buffer doesn't define its local value for the cursor type.  */
-  sw = XWINDOW (FVAR (f, selected_window));
-  frame_desired_cursor = Fcdr (Fassq (Qcursor_type, FVAR (f, param_alist)));
+  sw = XWINDOW (FGET (f, selected_window));
+  frame_desired_cursor = Fcdr (Fassq (Qcursor_type, FGET (f, param_alist)));
   if (cursor_in_echo_area
       && FRAME_HAS_MINIBUF_P (f)
       && EQ (FRAME_MINIBUF_WINDOW (f), echo_area_window)
@@ -1598,7 +1598,7 @@ IT_set_frame_parameters (struct frame *f, Lisp_Object alist)
   Lisp_Object *values
     = (Lisp_Object *) alloca (length * word_size);
   /* Do we have to reverse the foreground and background colors?  */
-  int reverse = EQ (Fcdr (Fassq (Qreverse, FVAR (f, param_alist))), Qt);
+  int reverse = EQ (Fcdr (Fassq (Qreverse, FGET (f, param_alist))), Qt);
   int redraw = 0, fg_set = 0, bg_set = 0;
   unsigned long orig_fg, orig_bg;
   struct tty_display_info *tty = FRAME_TTY (f);
index af83958..9a5ecd4 100644 (file)
@@ -448,16 +448,16 @@ x_set_icon_name (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
   else if (!STRINGP (oldval) && EQ (oldval, Qnil) == EQ (arg, Qnil))
     return;
 
-  FVAR (f, icon_name) = arg;
+  FSET (f, icon_name, arg);
 
   if (NILP (arg))
     {
-      if (!NILP (FVAR (f, title)))
-        arg = FVAR (f, title);
+      if (!NILP (FGET (f, title)))
+        arg = FGET (f, title);
       else
         /* explicit name and no icon-name -> explicit_name */
         if (f->explicit_name)
-          arg = FVAR (f, name);
+          arg = FGET (f, name);
         else
           {
             /* no explicit name and no icon-name ->
@@ -496,10 +496,10 @@ ns_set_name_internal (FRAME_PTR f, Lisp_Object name)
   if (! [[[view window] title] isEqualToString: str])
     [[view window] setTitle: str];
 
-  if (!STRINGP (FVAR (f, icon_name)))
+  if (!STRINGP (FGET (f, icon_name)))
     encoded_icon_name = encoded_name;
   else
-    encoded_icon_name = ENCODE_UTF_8 (FVAR (f, icon_name));
+    encoded_icon_name = ENCODE_UTF_8 (FGET (f, icon_name));
 
   str = [NSString stringWithUTF8String: SSDATA (encoded_icon_name)];
 
@@ -537,14 +537,14 @@ ns_set_name (struct frame *f, Lisp_Object name, int explicit)
     CHECK_STRING (name);
 
   /* Don't change the name if it's already NAME.  */
-  if (! NILP (Fstring_equal (name, FVAR (f, name))))
+  if (! NILP (Fstring_equal (name, FGET (f, name))))
     return;
 
-  FVAR (f, name) = name;
+  FSET (f, name, name);
 
   /* title overrides explicit name */
-  if (! NILP (FVAR (f, title)))
-    name = FVAR (f, title);
+  if (! NILP (FGET (f, title)))
+    name = FGET (f, title);
 
   ns_set_name_internal (f, name);
 }
@@ -586,15 +586,15 @@ x_set_title (struct frame *f, Lisp_Object name, Lisp_Object old_name)
 {
   NSTRACE (x_set_title);
   /* Don't change the title if it's already NAME.  */
-  if (EQ (name, FVAR (f, title)))
+  if (EQ (name, FGET (f, title)))
     return;
 
   update_mode_lines = 1;
 
-  FVAR (f, title) = name;
+  FSET (f, title, name);
 
   if (NILP (name))
-    name = FVAR (f, name);
+    name = FGET (f, name);
   else
     CHECK_STRING (name);
 
@@ -607,7 +607,7 @@ ns_set_name_as_filename (struct frame *f)
 {
   NSView *view;
   Lisp_Object name, filename;
-  Lisp_Object buf = WVAR (XWINDOW (FVAR (f, selected_window)), buffer);
+  Lisp_Object buf = WVAR (XWINDOW (FGET (f, selected_window)), buffer);
   const char *title;
   NSAutoreleasePool *pool;
   struct gcpro gcpro1;
@@ -615,7 +615,7 @@ ns_set_name_as_filename (struct frame *f)
   NSString *str;
   NSTRACE (ns_set_name_as_filename);
 
-  if (f->explicit_name || ! NILP (FVAR (f, title)) || ns_in_resize)
+  if (f->explicit_name || ! NILP (FGET (f, title)) || ns_in_resize)
     return;
 
   BLOCK_INPUT;
@@ -677,7 +677,7 @@ ns_set_name_as_filename (struct frame *f)
 
       [[view window] setRepresentedFilename: fstr];
       [[view window] setTitle: str];
-      FVAR (f, name) = name;
+      FSET (f, name, name);
     }
 
   [pool release];
@@ -690,7 +690,7 @@ ns_set_doc_edited (struct frame *f, Lisp_Object arg)
 {
   NSView *view = FRAME_NS_VIEW (f);
   NSAutoreleasePool *pool;
-  if (!MINI_WINDOW_P (XWINDOW (FVAR (f, selected_window))))
+  if (!MINI_WINDOW_P (XWINDOW (FGET (f, selected_window))))
     {
       BLOCK_INPUT;
       pool = [[NSAutoreleasePool alloc] init];
@@ -777,7 +777,7 @@ ns_implicitly_set_icon_type (struct frame *f)
   BLOCK_INPUT;
   pool = [[NSAutoreleasePool alloc] init];
   if (f->output_data.ns->miniimage
-      && [[NSString stringWithUTF8String: SSDATA (FVAR (f, name))]
+      && [[NSString stringWithUTF8String: SSDATA (FGET (f, name))]
                isEqualToString: [(NSImage *)f->output_data.ns->miniimage name]])
     {
       [pool release];
@@ -785,7 +785,7 @@ ns_implicitly_set_icon_type (struct frame *f)
       return;
     }
 
-  tem = assq_no_quit (Qicon_type, FVAR (f, param_alist));
+  tem = assq_no_quit (Qicon_type, FGET (f, param_alist));
   if (CONSP (tem) && ! NILP (XCDR (tem)))
     {
       [pool release];
@@ -799,17 +799,17 @@ ns_implicitly_set_icon_type (struct frame *f)
     {
       elt = XCAR (chain);
       /* special case: 't' means go by file type */
-      if (SYMBOLP (elt) && EQ (elt, Qt) && SSDATA (FVAR (f, name))[0] == '/')
+      if (SYMBOLP (elt) && EQ (elt, Qt) && SSDATA (FGET (f, name))[0] == '/')
         {
           NSString *str
-            = [NSString stringWithUTF8String: SSDATA (FVAR (f, name))];
+            = [NSString stringWithUTF8String: SSDATA (FGET (f, name))];
           if ([[NSFileManager defaultManager] fileExistsAtPath: str])
             image = [[[NSWorkspace sharedWorkspace] iconForFile: str] retain];
         }
       else if (CONSP (elt) &&
                STRINGP (XCAR (elt)) &&
                STRINGP (XCDR (elt)) &&
-               fast_string_match (XCAR (elt), FVAR (f, name)) >= 0)
+               fast_string_match (XCAR (elt), FGET (f, name)) >= 0)
         {
           image = [EmacsImage allocInitFromFile: XCDR (elt)];
           if (image == nil)
@@ -1205,11 +1205,11 @@ This function is an internal primitive--use `make-frame' instead.  */)
 
   FRAME_FONTSET (f) = -1;
 
-  FVAR (f, icon_name) = x_get_arg (dpyinfo, parms, Qicon_name,
-                                   "iconName", "Title",
-                            RES_TYPE_STRING);
-  if (! STRINGP (FVAR (f, icon_name)))
-    FVAR (f, icon_name) = Qnil;
+  FSET (f, icon_name, x_get_arg (dpyinfo, parms, Qicon_name,
+                                "iconName", "Title",
+                                RES_TYPE_STRING));
+  if (! STRINGP (FGET (f, icon_name)))
+    FSET (f, icon_name, Qnil);
 
   FRAME_NS_DISPLAY_INFO (f) = dpyinfo;
 
@@ -1232,12 +1232,12 @@ This function is an internal primitive--use `make-frame' instead.  */)
      be set.  */
   if (EQ (name, Qunbound) || NILP (name) || ! STRINGP (name))
     {
-      FVAR (f, name) = build_string ([ns_app_name UTF8String]);
+      FSET (f, name, build_string ([ns_app_name UTF8String]));
       f->explicit_name = 0;
     }
   else
     {
-      FVAR (f, name) = name;
+      FSET (f, name, name);
       f->explicit_name = 1;
       specbind (Qx_resource_name, name);
     }
@@ -1398,7 +1398,7 @@ This function is an internal primitive--use `make-frame' instead.  */)
      by x_get_arg and friends, now go in the misc. alist of the frame.  */
   for (tem = parms; CONSP (tem); tem = XCDR (tem))
     if (CONSP (XCAR (tem)) && !NILP (XCAR (XCAR (tem))))
-      FVAR (f, param_alist) = Fcons (XCAR (tem), FVAR (f, param_alist));
+      FSET (f, param_alist, Fcons (XCAR (tem), FGET (f, param_alist)));
 
   UNGCPRO;
 
index dc9b80a..619cd2c 100644 (file)
@@ -222,13 +222,13 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
 
       /* Save the frame's previous menu bar contents data */
       if (previous_menu_items_used)
-       memcpy (previous_items, aref_addr (FVAR (f, menu_bar_vector), 0),
+       memcpy (previous_items, aref_addr (FGET (f, menu_bar_vector), 0),
                previous_menu_items_used * sizeof (Lisp_Object));
 
       /* parse stage 1: extract from lisp */
       save_menu_items ();
 
-      menu_items = FVAR (f, menu_bar_vector);
+      menu_items = FGET (f, menu_bar_vector);
       menu_items_allocated = VECTORP (menu_items) ? ASIZE (menu_items) : 0;
       submenu_start = alloca (ASIZE (items) * sizeof *submenu_start);
       submenu_end = alloca (ASIZE (items) * sizeof *submenu_end);
@@ -341,7 +341,7 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
         }
       /* The menu items are different, so store them in the frame */
       /* FIXME: this is not correct for single-submenu case */
-      FVAR (f, menu_bar_vector) = menu_items;
+      FSET (f, menu_bar_vector, menu_items);
       f->menu_bar_items_used = menu_items_used;
 
       /* Calls restore_menu_items, etc., as they were outside */
@@ -1040,7 +1040,7 @@ update_frame_tool_bar (FRAME_PTR f)
   /* update EmacsToolbar as in GtkUtils, build items list */
   for (i = 0; i < f->n_tool_bar_items; ++i)
     {
-#define TOOLPROP(IDX) AREF (FVAR (f, tool_bar_items), \
+#define TOOLPROP(IDX) AREF (FGET (f, tool_bar_items), \
                             i * TOOL_BAR_ITEM_NSLOTS + (IDX))
 
       BOOL enabled_p = !NILP (TOOLPROP (TOOL_BAR_ITEM_ENABLED_P));
index 4c0e0e5..d420275 100644 (file)
@@ -1304,7 +1304,7 @@ x_set_window_size (struct frame *f, int change_grav, int cols, int rows)
   FRAME_PIXEL_HEIGHT (f) = pixelheight;
 /*  SET_FRAME_GARBAGED (f); // this short-circuits expose call in drawRect */
 
-  mark_window_cursors_off (XWINDOW (FVAR (f, root_window)));
+  mark_window_cursors_off (XWINDOW (FGET (f, root_window)));
   cancel_mouse_face (f);
 
   UNBLOCK_INPUT;
@@ -2123,8 +2123,8 @@ ns_after_update_window_line (struct glyph_row *desired_row)
       int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y));
 
       /* Internal border is drawn below the tool bar.  */
-      if (WINDOWP (FVAR (f, tool_bar_window))
-         && w == XWINDOW (FVAR (f, tool_bar_window)))
+      if (WINDOWP (FGET (f, tool_bar_window))
+         && w == XWINDOW (FGET (f, tool_bar_window)))
        y -= width;
       /* end copy from other terms */
 
@@ -5540,7 +5540,7 @@ ns_term_shutdown (int sig)
   if (ns_drag_types)
     [self registerForDraggedTypes: ns_drag_types];
 
-  tem = FVAR (f, name);
+  tem = FGET (f, name);
   name = [NSString stringWithUTF8String:
                    NILP (tem) ? "Emacs" : SSDATA (tem)];
   [win setTitle: name];
@@ -5558,7 +5558,7 @@ ns_term_shutdown (int sig)
 #endif
   FRAME_TOOLBAR_HEIGHT (f) = 0;
 
-  tem = FVAR (f, icon_name);
+  tem = FGET (f, icon_name);
   if (!NILP (tem))
     [win setMiniwindowTitle:
            [NSString stringWithUTF8String: SSDATA (tem)]];
@@ -5739,7 +5739,7 @@ ns_term_shutdown (int sig)
     {
       NSInteger tag = [sender tag];
       find_and_call_menu_selection (emacsframe, emacsframe->menu_bar_items_used,
-                                    FVAR (emacsframe, menu_bar_vector),
+                                    FGET (emacsframe, menu_bar_vector),
                                     (void *)tag);
     }
 
@@ -5773,8 +5773,8 @@ ns_term_shutdown (int sig)
 
   emacs_event->kind = TOOL_BAR_EVENT;
 /*   XSETINT (emacs_event->code, 0); */
-  emacs_event->arg = AREF (FVAR (emacsframe, tool_bar_items),
-                          idx + TOOL_BAR_ITEM_KEY);
+  emacs_event->arg = AREF (FGET (emacsframe, tool_bar_items),
+                          idx + TOOL_BAR_ITEM_KEY);
   emacs_event->modifiers = EV_MODIFIERS (theEvent);
   EV_TRAILER (theEvent);
   return self;
@@ -6062,7 +6062,7 @@ ns_term_shutdown (int sig)
   Lisp_Object str = Qnil;
   struct frame *f = SELECTED_FRAME ();
   struct buffer *curbuf
-    = XBUFFER (WVAR (XWINDOW (FVAR (f, selected_window)), buffer));
+    = XBUFFER (WVAR (XWINDOW (FGET (f, selected_window)), buffer));
  
   if ([attribute isEqualToString:NSAccessibilityRoleAttribute])
     return NSAccessibilityTextFieldRole;
index d161339..8db2223 100644 (file)
@@ -1896,7 +1896,7 @@ print_object (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag
       else if (FRAMEP (obj))
        {
          int len;
-         Lisp_Object frame_name = FVAR (XFRAME (obj), name);
+         Lisp_Object frame_name = FGET (XFRAME (obj), name);
 
          strout ((FRAME_LIVE_P (XFRAME (obj))
                   ? "#<frame " : "#<dead frame "),
index 64bc88a..60b963b 100644 (file)
@@ -2192,7 +2192,7 @@ set_tty_color_mode (struct tty_display_info *tty, struct frame *f)
   Lisp_Object tty_color_mode_alist
     = Fintern_soft (build_string ("tty-color-mode-alist"), Qnil);
 
-  tem = assq_no_quit (Qtty_color_mode, FVAR (f, param_alist));
+  tem = assq_no_quit (Qtty_color_mode, FGET (f, param_alist));
   val = CONSP (tem) ? XCDR (tem) : Qnil;
 
   if (INTEGERP (val))
index bbcda21..be64e27 100644 (file)
@@ -1489,7 +1489,7 @@ x_set_icon_name (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
   else if (!NILP (arg) || NILP (oldval))
     return;
 
-  FVAR (f, icon_name) = arg;
+  FSET (f, icon_name, arg);
 
 #if 0
   if (f->output_data.w32->icon_bitmap != 0)
@@ -1498,11 +1498,11 @@ x_set_icon_name (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
   BLOCK_INPUT;
 
   result = x_text_icon (f,
-                       SSDATA ((!NILP (FVAR (f, icon_name))
-                                ? FVAR (f, icon_name)
-                                : !NILP (FVAR (f, title))
-                                ? FVAR (f, title)
-                                : FVAR (f, name))));
+                       SSDATA ((!NILP (FGET (f, icon_name))
+                                ? FGET (f, icon_name)
+                                : !NILP (FGET (f, title))
+                                ? FGET (f, title)
+                                : FGET (f, name))));
 
   if (result)
     {
@@ -1631,8 +1631,8 @@ x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
       }
       UNBLOCK_INPUT;
 
-      if (WINDOWP (FVAR (f, tool_bar_window)))
-       clear_glyph_matrix (XWINDOW (FVAR (f, tool_bar_window))->current_matrix);
+      if (WINDOWP (FGET (f, tool_bar_window)))
+       clear_glyph_matrix (XWINDOW (FGET (f, tool_bar_window))->current_matrix);
     }
 
   run_window_configuration_change_hook (f);
@@ -1674,7 +1674,7 @@ x_set_name (struct frame *f, Lisp_Object name, int explicit)
       /* Check for no change needed in this very common case
         before we do any consing.  */
       if (!strcmp (FRAME_W32_DISPLAY_INFO (f)->w32_id_name,
-                  SDATA (FVAR (f, name))))
+                  SDATA (FGET (f, name))))
        return;
       name = build_string (FRAME_W32_DISPLAY_INFO (f)->w32_id_name);
     }
@@ -1682,15 +1682,15 @@ x_set_name (struct frame *f, Lisp_Object name, int explicit)
     CHECK_STRING (name);
 
   /* Don't change the name if it's already NAME.  */
-  if (! NILP (Fstring_equal (name, FVAR (f, name))))
+  if (! NILP (Fstring_equal (name, FGET (f, name))))
     return;
 
-  FVAR (f, name) = name;
+  FSET (f, name, name);
 
   /* For setting the frame title, the title parameter should override
      the name parameter.  */
-  if (! NILP (FVAR (f, title)))
-    name = FVAR (f, title);
+  if (! NILP (FGET (f, title)))
+    name = FGET (f, title);
 
   if (FRAME_W32_WINDOW (f))
     {
@@ -1728,15 +1728,15 @@ void
 x_set_title (struct frame *f, Lisp_Object name, Lisp_Object old_name)
 {
   /* Don't change the title if it's already NAME.  */
-  if (EQ (name, FVAR (f, title)))
+  if (EQ (name, FGET (f, title)))
     return;
 
   update_mode_lines = 1;
 
-  FVAR (f, title) = name;
+  FSET (f, title, name);
 
   if (NILP (name))
-    name = FVAR (f, name);
+    name = FGET (f, name);
 
   if (FRAME_W32_WINDOW (f))
     {
@@ -3896,8 +3896,8 @@ w32_window (struct frame *f, long window_prompting, int minibuffer_only)
     int explicit = f->explicit_name;
 
     f->explicit_name = 0;
-    name = FVAR (f, name);
-    FVAR (f, name) = Qnil;
+    name = FGET (f, name);
+    FSET (f, name, Qnil);
     x_set_name (f, name, explicit);
   }
 
@@ -3944,9 +3944,9 @@ x_icon (struct frame *f, Lisp_Object parms)
         ? IconicState
         : NormalState));
 
-  x_text_icon (f, SSDATA ((!NILP (FVAR (f, icon_name))
-                          ? FVAR (f, icon_name)
-                          : FVAR (f, name))));
+  x_text_icon (f, SSDATA ((!NILP (FGET (f, icon_name))
+                          ? FGET (f, icon_name)
+                          : FGET (f, name))));
 #endif
 
   UNBLOCK_INPUT;
@@ -4146,11 +4146,11 @@ This function is an internal primitive--use `make-frame' instead.  */)
   f->output_data.w32 = xzalloc (sizeof (struct w32_output));
   FRAME_FONTSET (f) = -1;
 
-  FVAR (f, icon_name)
-    = x_get_arg (dpyinfo, parameters, Qicon_name, "iconName", "Title",
-                   RES_TYPE_STRING);
-  if (! STRINGP (FVAR (f, icon_name)))
-    FVAR (f, icon_name) = Qnil;
+  FSET (f, icon_name,
+       x_get_arg (dpyinfo, parameters, Qicon_name, "iconName", "Title",
+                   RES_TYPE_STRING));
+  if (! STRINGP (FGET (f, icon_name)))
+    FSET (f, icon_name, Qnil);
 
 /*  FRAME_W32_DISPLAY_INFO (f) = dpyinfo; */
 
@@ -4179,12 +4179,12 @@ This function is an internal primitive--use `make-frame' instead.  */)
      be set.  */
   if (EQ (name, Qunbound) || NILP (name))
     {
-      FVAR (f, name) = build_string (dpyinfo->w32_id_name);
+      FSET (f, name, build_string (dpyinfo->w32_id_name));
       f->explicit_name = 0;
     }
   else
     {
-      FVAR (f, name) = name;
+      FSET (f, name, name);
       f->explicit_name = 1;
       /* use the frame's title when getting resources for this frame.  */
       specbind (Qx_resource_name, name);
@@ -4359,7 +4359,7 @@ This function is an internal primitive--use `make-frame' instead.  */)
      by x_get_arg and friends, now go in the misc. alist of the frame.  */
   for (tem = parameters; CONSP (tem); tem = XCDR (tem))
     if (CONSP (XCAR (tem)) && !NILP (XCAR (XCAR (tem))))
-      FVAR (f, param_alist) = Fcons (XCAR (tem), FVAR (f, param_alist));
+      FSET (f, param_alist, Fcons (XCAR (tem), FGET (f, param_alist)));
 
   UNGCPRO;
 
@@ -5231,7 +5231,7 @@ x_create_tip_frame (struct w32_display_info *dpyinfo,
   f->output_data.w32 = xzalloc (sizeof (struct w32_output));
 
   FRAME_FONTSET (f)  = -1;
-  FVAR (f, icon_name) = Qnil;
+  FSET (f, icon_name, Qnil);
 
 #ifdef GLYPH_DEBUG
   image_cache_refcount =
@@ -5246,12 +5246,12 @@ x_create_tip_frame (struct w32_display_info *dpyinfo,
      be set.  */
   if (EQ (name, Qunbound) || NILP (name))
     {
-      FVAR (f, name) = build_string (dpyinfo->w32_id_name);
+      FSET (f, name, build_string (dpyinfo->w32_id_name));
       f->explicit_name = 0;
     }
   else
     {
-      FVAR (f, name) = name;
+      FSET (f, name, name);
       f->explicit_name = 1;
       /* use the frame's title when getting resources for this frame.  */
       specbind (Qx_resource_name, name);
index f6b7e62..a40bb66 100644 (file)
@@ -277,7 +277,7 @@ menubar_selection_callback (FRAME_PTR f, void * client_data)
     return;
   entry = Qnil;
   subprefix_stack = (Lisp_Object *) alloca (f->menu_bar_items_used * word_size);
-  vector = FVAR (f, menu_bar_vector);
+  vector = FGET (f, menu_bar_vector);
   prefix = Qnil;
   i = 0;
   while (i < f->menu_bar_items_used)
@@ -419,14 +419,14 @@ set_frame_menubar (FRAME_PTR f, int first_time, int deep_p)
 
       /* Save the frame's previous menu bar contents data.  */
       if (previous_menu_items_used)
-       memcpy (previous_items, XVECTOR (FVAR (f, menu_bar_vector))->contents,
+       memcpy (previous_items, XVECTOR (FGET (f, menu_bar_vector))->contents,
                previous_menu_items_used * word_size);
 
       /* Fill in menu_items with the current menu bar contents.
         This can evaluate Lisp code.  */
       save_menu_items ();
 
-      menu_items = FVAR (f, menu_bar_vector);
+      menu_items = FGET (f, menu_bar_vector);
       menu_items_allocated = VECTORP (menu_items) ? ASIZE (menu_items) : 0;
       submenu_start = (int *) alloca (ASIZE (items) * sizeof (int));
       submenu_end = (int *) alloca (ASIZE (items) * sizeof (int));
@@ -500,7 +500,7 @@ set_frame_menubar (FRAME_PTR f, int first_time, int deep_p)
          return;
        }
 
-      FVAR (f, menu_bar_vector) = menu_items;
+      FSET (f, menu_bar_vector, menu_items);
       f->menu_bar_items_used = menu_items_used;
 
       /* This undoes save_menu_items.  */
index 6b87ca4..b00089c 100644 (file)
@@ -4189,7 +4189,7 @@ w32_read_socket (struct terminal *terminal, int expected,
                  /* We may get paint messages even though the client
                     area is clipped - these are not expose events. */
                  DebPrint (("clipped frame %p (%s) got WM_PAINT - ignored\n", f,
-                            SDATA (FVAR (f, name))));
+                            SDATA (FGET (f, name))));
                }
              else if (f->async_visible != 1)
                {
@@ -4198,7 +4198,7 @@ w32_read_socket (struct terminal *terminal, int expected,
                  f->async_iconified = 0;
                  SET_FRAME_GARBAGED (f);
                  DebPrint (("frame %p (%s) reexposed by WM_PAINT\n", f,
-                            SDATA (FVAR (f, name))));
+                            SDATA (FGET (f, name))));
 
                  /* WM_PAINT serves as MapNotify as well, so report
                     visibility changes properly.  */
@@ -4254,7 +4254,7 @@ w32_read_socket (struct terminal *terminal, int expected,
          if (f && !f->iconified)
            {
              if (!hlinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
-                 && !EQ (FVAR (f, tool_bar_window), hlinfo->mouse_face_window))
+                 && !EQ (FGET (f, tool_bar_window), hlinfo->mouse_face_window))
                {
                  clear_mouse_face (hlinfo);
                  hlinfo->mouse_face_hidden = 1;
@@ -4279,7 +4279,7 @@ w32_read_socket (struct terminal *terminal, int expected,
          if (f && !f->iconified)
            {
              if (!hlinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
-                 && !EQ (FVAR (f, tool_bar_window), hlinfo->mouse_face_window))
+                 && !EQ (FGET (f, tool_bar_window), hlinfo->mouse_face_window))
                {
                  clear_mouse_face (hlinfo);
                  hlinfo->mouse_face_hidden = 1;
@@ -4357,7 +4357,7 @@ w32_read_socket (struct terminal *terminal, int expected,
          if (f && !f->iconified)
            {
              if (!hlinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
-                 && !EQ (FVAR (f, tool_bar_window), hlinfo->mouse_face_window))
+                 && !EQ (FGET (f, tool_bar_window), hlinfo->mouse_face_window))
                {
                  clear_mouse_face (hlinfo);
                  hlinfo->mouse_face_hidden = 1;
@@ -4481,8 +4481,8 @@ w32_read_socket (struct terminal *terminal, int expected,
                 construct_mouse_click (&inev, &msg, f);
 
                 /* Is this in the tool-bar?  */
-                if (WINDOWP (FVAR (f, tool_bar_window))
-                    && WINDOW_TOTAL_LINES (XWINDOW (FVAR (f, tool_bar_window))))
+                if (WINDOWP (FGET (f, tool_bar_window))
+                    && WINDOW_TOTAL_LINES (XWINDOW (FGET (f, tool_bar_window))))
                   {
                     Lisp_Object window;
                    int x = XFASTINT (inev.x);
@@ -4490,7 +4490,7 @@ w32_read_socket (struct terminal *terminal, int expected,
 
                     window = window_from_coordinates (f, x, y, 0, 1);
 
-                    if (EQ (window, FVAR (f, tool_bar_window)))
+                    if (EQ (window, FGET (f, tool_bar_window)))
                       {
                         w32_handle_tool_bar_click (f, &inev);
                         tool_bar_p = 1;
@@ -4935,7 +4935,7 @@ w32_read_socket (struct terminal *terminal, int expected,
                if (!FRAME_OBSCURED_P (f))
                  {
                    DebPrint (("frame %p (%s) obscured\n", f,
-                              SDATA (FVAR (f, name))));
+                              SDATA (FGET (f, name))));
                  }
              }
            else
@@ -4947,7 +4947,7 @@ w32_read_socket (struct terminal *terminal, int expected,
                  {
                    SET_FRAME_GARBAGED (f);
                    DebPrint (("obscured frame %p (%s) found to be visible\n", f,
-                              SDATA (FVAR (f, name))));
+                              SDATA (FGET (f, name))));
 
                    /* Force a redisplay sooner or later.  */
                    record_asynch_buffer_change ();
@@ -5595,7 +5595,7 @@ x_set_window_size (struct frame *f, int change_gravity, int cols, int rows)
   SET_FRAME_GARBAGED (f);
 
   /* If cursor was outside the new size, mark it as off.  */
-  mark_window_cursors_off (XWINDOW (FVAR (f, root_window)));
+  mark_window_cursors_off (XWINDOW (FGET (f, root_window)));
 
   /* Clear out any recollection of where the mouse highlighting was,
      since it might be in a place that's outside the new frame size.
index f4f6e3c..fcd9c66 100644 (file)
@@ -191,13 +191,13 @@ With a window argument, return the root window of that window's frame.  */)
   Lisp_Object window;
 
   if (NILP (frame_or_window))
-    window = FVAR (SELECTED_FRAME (), root_window);
+    window = FGET (SELECTED_FRAME (), root_window);
   else if (WINDOWP (frame_or_window))
-    window = FVAR (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))), root_window);
+    window = FGET (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))), root_window);
   else
     {
       CHECK_LIVE_FRAME (frame_or_window);
-      window = FVAR (XFRAME (frame_or_window), root_window);
+      window = FGET (XFRAME (frame_or_window), root_window);
     }
 
   return window;
@@ -235,13 +235,13 @@ the first window of that frame.  */)
   Lisp_Object window;
 
   if (NILP (frame_or_window))
-    window = FVAR (SELECTED_FRAME (), root_window);
+    window = FGET (SELECTED_FRAME (), root_window);
   else if (WINDOWP (frame_or_window))
-    window = FVAR (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))), root_window);
+    window = FGET (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))), root_window);
   else
     {
       CHECK_LIVE_FRAME (frame_or_window);
-      window = FVAR (XFRAME (frame_or_window), root_window);
+      window = FGET (XFRAME (frame_or_window), root_window);
     }
 
   while (NILP (WVAR (XWINDOW (window), buffer)))
@@ -269,14 +269,14 @@ the selected window of that frame.  */)
   Lisp_Object window;
 
   if (NILP (frame_or_window))
-    window = FVAR (SELECTED_FRAME (), selected_window);
+    window = FGET (SELECTED_FRAME (), selected_window);
   else if (WINDOWP (frame_or_window))
-    window = FVAR (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))),
+    window = FGET (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))),
                   selected_window);
   else
     {
       CHECK_LIVE_FRAME (frame_or_window);
-      window = FVAR (XFRAME (frame_or_window), selected_window);
+      window = FGET (XFRAME (frame_or_window), selected_window);
     }
 
   return window;
@@ -304,7 +304,7 @@ Return WINDOW.  */)
   if (EQ (frame, selected_frame))
     return Fselect_window (window, norecord);
   else
-    return FVAR (XFRAME (frame), selected_window) = window;
+    return FSET (XFRAME (frame), selected_window, window);
 }
 
 DEFUN ("selected-window", Fselected_window, Sselected_window, 0, 0, 0,
@@ -347,7 +347,7 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
   sf = SELECTED_FRAME ();
   if (XFRAME (WINDOW_FRAME (w)) != sf)
     {
-      FVAR (XFRAME (WINDOW_FRAME (w)), selected_window) = window;
+      FSET (XFRAME (WINDOW_FRAME (w)), selected_window, window);
       /* Use this rather than Fhandle_switch_frame
         so that FRAME_FOCUS_FRAME is moved appropriately as we
         move around in the state where a minibuffer in a separate
@@ -358,7 +358,7 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
       return window;
     }
   else
-    FVAR (sf, selected_window) = window;
+    FSET (sf, selected_window, window);
 
   /* Store the current buffer's actual point into the
      old selected window.  It belongs to that window,
@@ -1220,13 +1220,13 @@ window_from_coordinates (struct frame *f, int x, int y,
      bar exists.  */
   if (NILP (window)
       && tool_bar_p
-      && WINDOWP (FVAR (f, tool_bar_window))
-      && WINDOW_TOTAL_LINES (XWINDOW (FVAR (f, tool_bar_window))) > 0
-      && (coordinates_in_window (XWINDOW (FVAR (f, tool_bar_window)), x, y)
+      && WINDOWP (FGET (f, tool_bar_window))
+      && WINDOW_TOTAL_LINES (XWINDOW (FGET (f, tool_bar_window))) > 0
+      && (coordinates_in_window (XWINDOW (FGET (f, tool_bar_window)), x, y)
          != ON_NOTHING))
     {
       *part = ON_TEXT;
-      window = FVAR (f, tool_bar_window);
+      window = FGET (f, tool_bar_window);
     }
 
   return window;
@@ -1841,7 +1841,7 @@ replace_window (Lisp_Object old, Lisp_Object new, int setflag)
   /* If OLD is its frame's root window, then NEW is the new
      root window for that frame.  */
   if (EQ (old, FRAME_ROOT_WINDOW (XFRAME (WVAR (o, frame)))))
-    FRAME_ROOT_WINDOW (XFRAME (WVAR (o, frame))) = new;
+    FSET (XFRAME (WVAR (o, frame)), selected_window, new);
 
   if (setflag)
     {
@@ -2323,7 +2323,7 @@ MINIBUF neither nil nor t means never include the minibuffer window.  */)
   (Lisp_Object frame, Lisp_Object minibuf, Lisp_Object window)
 {
   if (NILP (window))
-    window = FRAMEP (frame) ? FVAR (XFRAME (frame), selected_window) : selected_window;
+    window = FRAMEP (frame) ? FGET (XFRAME (frame), selected_window) : selected_window;
   CHECK_WINDOW (window);
   if (NILP (frame))
     frame = selected_frame;
@@ -2633,7 +2633,7 @@ window-start value is reasonable when this function is called.  */)
          if (EQ (selected_frame, WVAR (w, frame)))
            Fselect_window (window, Qnil);
          else
-           FRAME_SELECTED_WINDOW (f) = window;
+           FSET (f, selected_window, window);
        }
     }
   else
@@ -2663,7 +2663,7 @@ window-start value is reasonable when this function is called.  */)
          if (EQ (selected_frame, WVAR (w, frame)))
            Fselect_window (swindow, Qnil);
          else
-           FRAME_SELECTED_WINDOW (f) = swindow;
+           FSET (f, selected_window, swindow);
        }
     }
 
@@ -3562,9 +3562,9 @@ be applied on the Elisp level.  */)
 void
 resize_frame_windows (struct frame *f, int size, int horflag)
 {
-  Lisp_Object root = FVAR (f, root_window);
+  Lisp_Object root = FGET (f, root_window);
   struct window *r = XWINDOW (root);
-  Lisp_Object mini = FVAR (f, minibuffer_window);
+  Lisp_Object mini = FGET (f, minibuffer_window);
   struct window *m;
   /* new_size is the new size of the frame's root window.  */
   int new_size = (horflag
@@ -3612,7 +3612,7 @@ resize_frame_windows (struct frame *f, int size, int horflag)
                {
                  /* We lost.  Delete all windows but the frame's
                     selected one.  */
-                 root = FVAR (f, selected_window);
+                 root = FGET (f, selected_window);
                  Fdelete_other_windows_internal (root, Qnil);
                  if (horflag)
                    XSETFASTINT (WVAR (XWINDOW (root), total_cols), new_size);
@@ -3971,7 +3971,7 @@ Signal an error when WINDOW is the only window on its frame.  */)
          if (EQ (FRAME_SELECTED_WINDOW (f), selected_window))
            Fselect_window (new_selected_window, Qt);
          else
-           FRAME_SELECTED_WINDOW (f) = new_selected_window;
+           FSET (f, selected_window, new_selected_window);
 
          UNBLOCK_INPUT;
 
@@ -3985,7 +3985,7 @@ Signal an error when WINDOW is the only window on its frame.  */)
          if (EQ (FRAME_SELECTED_WINDOW (f), selected_window))
            Fselect_window (new_selected_window, Qnil);
          else
-           FRAME_SELECTED_WINDOW (f) = new_selected_window;
+           FSET (f, selected_window, new_selected_window);
        }
       else
        UNBLOCK_INPUT;
@@ -5660,7 +5660,7 @@ the return value is nil.  Otherwise the value is t.  */)
            }
        }
 
-      FRAME_ROOT_WINDOW (f) = data->root_window;
+      FSET (f, root_window, data->root_window);
       /* Arrange *not* to restore point in the buffer that was
         current when the window configuration was saved.  */
       if (EQ (WVAR (XWINDOW (data->current_window), buffer), new_current_buffer))
@@ -6490,8 +6490,8 @@ init_window_once (void)
   struct frame *f = make_initial_frame ();
   XSETFRAME (selected_frame, f);
   Vterminal_frame = selected_frame;
-  minibuf_window = FVAR (f, minibuffer_window);
-  selected_window = FVAR (f, selected_window);
+  minibuf_window = FGET (f, minibuffer_window);
+  selected_window = FGET (f, selected_window);
   last_nonminibuf_frame = f;
 
   window_initialized = 1;
index ece58d2..da42250 100644 (file)
@@ -468,14 +468,14 @@ struct window
 /* 1 if W is a menu bar window.  */
 
 #define WINDOW_MENU_BAR_P(W) \
-  (WINDOWP (FVAR (WINDOW_XFRAME (W), menu_bar_window)) \
-   && (W) == XWINDOW (FVAR (WINDOW_XFRAME (W), menu_bar_window)))
+  (WINDOWP (FGET (WINDOW_XFRAME (W), menu_bar_window)) \
+   && (W) == XWINDOW (FGET (WINDOW_XFRAME (W), menu_bar_window)))
 
 /* 1 if W is a tool bar window.  */
 
 #define WINDOW_TOOL_BAR_P(W) \
-  (WINDOWP (FVAR (WINDOW_XFRAME (W), tool_bar_window)) \
-   && (W) == XWINDOW (FVAR (WINDOW_XFRAME (W), tool_bar_window)))
+  (WINDOWP (FGET (WINDOW_XFRAME (W), tool_bar_window)) \
+   && (W) == XWINDOW (FGET (WINDOW_XFRAME (W), tool_bar_window)))
 
 /* Return the frame y-position at which window W starts.
    This includes a header line, if any.  */
index 300e16b..314fb44 100644 (file)
@@ -10891,7 +10891,7 @@ format_mode_line_unwind_data (struct frame *target_frame,
       /* Similarly to `with-selected-window', if the operation selects
         a window on another frame, we must restore that frame's
         selected window, and (for a tty) the top-frame.  */
-      ASET (vector, 8, FVAR (target_frame, selected_window));
+      ASET (vector, 8, FGET (target_frame, selected_window));
       if (FRAME_TERMCAP_P (target_frame))
        ASET (vector, 9, FRAME_TTY (target_frame)->top_frame);
     }
@@ -11051,14 +11051,14 @@ x_consider_frame_title (Lisp_Object frame)
                             format_mode_line_unwind_data
                               (f, current_buffer, selected_window, 0));
 
-      Fselect_window (FVAR (f, selected_window), Qt);
+      Fselect_window (FGET (f, selected_window), Qt);
       set_buffer_internal_1
-       (XBUFFER (WVAR (XWINDOW (FVAR (f, selected_window)), buffer)));
+       (XBUFFER (WVAR (XWINDOW (FGET (f, selected_window)), buffer)));
       fmt = FRAME_ICONIFIED_P (f) ? Vicon_title_format : Vframe_title_format;
 
       mode_line_target = MODE_LINE_TITLE;
       title_start = MODE_LINE_NOPROP_LEN (0);
-      init_iterator (&it, XWINDOW (FVAR (f, selected_window)), -1, -1,
+      init_iterator (&it, XWINDOW (FGET (f, selected_window)), -1, -1,
                     NULL, DEFAULT_FACE_ID);
       display_mode_element (&it, 0, -1, -1, fmt, Qnil, 0);
       len = MODE_LINE_NOPROP_LEN (title_start);
@@ -11070,9 +11070,9 @@ x_consider_frame_title (Lisp_Object frame)
         already wasted too much time by walking through the list with
         display_mode_element, then we might need to optimize at a
         higher level than this.)  */
-      if (! STRINGP (FVAR (f, name))
-         || SBYTES (FVAR (f, name)) != len
-         || memcmp (title, SDATA (FVAR (f, name)), len) != 0)
+      if (! STRINGP (FGET (f, name))
+         || SBYTES (FGET (f, name)) != len
+         || memcmp (title, SDATA (FGET (f, name)), len) != 0)
        x_implicitly_set_name (f, make_string (title, len), Qnil);
     }
 }
@@ -11173,7 +11173,7 @@ prepare_menu_bars (void)
              && FRAME_NS_P (f))
             ns_set_doc_edited
              (f, Fbuffer_modified_p
-              (WVAR (XWINDOW (FVAR (f, selected_window)), buffer)));
+              (WVAR (XWINDOW (FGET (f, selected_window)), buffer)));
 #endif
          UNGCPRO;
        }
@@ -11275,7 +11275,7 @@ update_menu_bar (struct frame *f, int save_match_data, int hooks_run)
            }
 
          XSETFRAME (Vmenu_updating_frame, f);
-         FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f));
+         FSET (f, menu_bar_items, menu_bar_items (FRAME_MENU_BAR_ITEMS (f)));
 
          /* Redisplay the menu bar in case we changed it.  */
 #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
@@ -11414,8 +11414,8 @@ update_tool_bar (struct frame *f, int save_match_data)
 #if defined (USE_GTK) || defined (HAVE_NS)
   int do_update = FRAME_EXTERNAL_TOOL_BAR (f);
 #else
-  int do_update = WINDOWP (FVAR (f, tool_bar_window))
-    && WINDOW_TOTAL_LINES (XWINDOW (FVAR (f, tool_bar_window))) > 0;
+  int do_update = WINDOWP (FGET (f, tool_bar_window))
+    && WINDOW_TOTAL_LINES (XWINDOW (FGET (f, tool_bar_window))) > 0;
 #endif
 
   if (do_update)
@@ -11477,18 +11477,18 @@ update_tool_bar (struct frame *f, int save_match_data)
 
          /* Build desired tool-bar items from keymaps.  */
           new_tool_bar
-           = tool_bar_items (Fcopy_sequence (FVAR (f, tool_bar_items)),
+           = tool_bar_items (Fcopy_sequence (FGET (f, tool_bar_items)),
                              &new_n_tool_bar);
 
          /* Redisplay the tool-bar if we changed it.  */
          if (new_n_tool_bar != f->n_tool_bar_items
-             || NILP (Fequal (new_tool_bar, FVAR (f, tool_bar_items))))
+             || NILP (Fequal (new_tool_bar, FGET (f, tool_bar_items))))
             {
               /* Redisplay that happens asynchronously due to an expose event
                  may access f->tool_bar_items.  Make sure we update both
                  variables within BLOCK_INPUT so no such event interrupts.  */
               BLOCK_INPUT;
-              FVAR (f, tool_bar_items) = new_tool_bar;
+              FSET (f, tool_bar_items, new_tool_bar);
               f->n_tool_bar_items = new_n_tool_bar;
               w->update_mode_line = 1;
               UNBLOCK_INPUT;
@@ -11521,22 +11521,22 @@ build_desired_tool_bar_string (struct frame *f)
      Otherwise, make a new string.  */
 
   /* The size of the string we might be able to reuse.  */
-  size = (STRINGP (FVAR (f, desired_tool_bar_string))
-         ? SCHARS (FVAR (f, desired_tool_bar_string))
+  size = (STRINGP (FGET (f, desired_tool_bar_string))
+         ? SCHARS (FGET (f, desired_tool_bar_string))
          : 0);
 
   /* We need one space in the string for each image.  */
   size_needed = f->n_tool_bar_items;
 
   /* Reuse f->desired_tool_bar_string, if possible.  */
-  if (size < size_needed || NILP (FVAR (f, desired_tool_bar_string)))
-    FVAR (f, desired_tool_bar_string)
-      = Fmake_string (make_number (size_needed), make_number (' '));
+  if (size < size_needed || NILP (FGET (f, desired_tool_bar_string)))
+    FSET (f, desired_tool_bar_string,
+         Fmake_string (make_number (size_needed), make_number (' ')));
   else
     {
       props = list4 (Qdisplay, Qnil, Qmenu_item, Qnil);
       Fremove_text_properties (make_number (0), make_number (size),
-                              props, FVAR (f, desired_tool_bar_string));
+                              props, FGET (f, desired_tool_bar_string));
     }
 
   /* Put a `display' property on the string for the images to display,
@@ -11545,7 +11545,7 @@ build_desired_tool_bar_string (struct frame *f)
   for (i = 0; i < f->n_tool_bar_items; ++i)
     {
 #define PROP(IDX) \
-  AREF (FVAR (f, tool_bar_items), i * TOOL_BAR_ITEM_NSLOTS + (IDX))
+  AREF (FGET (f, tool_bar_items), i * TOOL_BAR_ITEM_NSLOTS + (IDX))
 
       int enabled_p = !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P));
       int selected_p = !NILP (PROP (TOOL_BAR_ITEM_SELECTED_P));
@@ -11654,11 +11654,11 @@ build_desired_tool_bar_string (struct frame *f)
          string.  The string can be longer than needed when we reuse a
          previous string.  */
       if (i + 1 == f->n_tool_bar_items)
-       end = SCHARS (FVAR (f, desired_tool_bar_string));
+       end = SCHARS (FGET (f, desired_tool_bar_string));
       else
        end = i + 1;
       Fadd_text_properties (make_number (i), make_number (end),
-                           props, FVAR (f, desired_tool_bar_string));
+                           props, FGET (f, desired_tool_bar_string));
 #undef PROP
     }
 
@@ -11808,7 +11808,7 @@ display_tool_bar_line (struct it *it, int height)
 static int
 tool_bar_lines_needed (struct frame *f, int *n_rows)
 {
-  struct window *w = XWINDOW (FVAR (f, tool_bar_window));
+  struct window *w = XWINDOW (FGET (f, tool_bar_window));
   struct it it;
   /* tool_bar_lines_needed is called from redisplay_tool_bar after building
      the desired matrix, so use (unused) mode-line row as temporary row to
@@ -11820,7 +11820,7 @@ tool_bar_lines_needed (struct frame *f, int *n_rows)
   init_iterator (&it, w, -1, -1, temp_row, TOOL_BAR_FACE_ID);
   it.first_visible_x = 0;
   it.last_visible_x = FRAME_TOTAL_COLS (f) * FRAME_COLUMN_WIDTH (f);
-  reseat_to_string (&it, NULL, FVAR (f, desired_tool_bar_string), 0, 0, 0, -1);
+  reseat_to_string (&it, NULL, FGET (f, desired_tool_bar_string), 0, 0, 0, -1);
   it.paragraph_embedding = L2R;
 
   while (!ITERATOR_AT_END_P (&it))
@@ -11854,8 +11854,8 @@ DEFUN ("tool-bar-lines-needed", Ftool_bar_lines_needed, Stool_bar_lines_needed,
     CHECK_FRAME (frame);
   f = XFRAME (frame);
 
-  if (WINDOWP (FVAR (f, tool_bar_window))
-      && (w = XWINDOW (FVAR (f, tool_bar_window)),
+  if (WINDOWP (FGET (f, tool_bar_window))
+      && (w = XWINDOW (FGET (f, tool_bar_window)),
          WINDOW_TOTAL_LINES (w) > 0))
     {
       update_tool_bar (f, 1);
@@ -11890,8 +11890,8 @@ redisplay_tool_bar (struct frame *f)
      do anything.  This means you must start with tool-bar-lines
      non-zero to get the auto-sizing effect.  Or in other words, you
      can turn off tool-bars by specifying tool-bar-lines zero.  */
-  if (!WINDOWP (FVAR (f, tool_bar_window))
-      || (w = XWINDOW (FVAR (f, tool_bar_window)),
+  if (!WINDOWP (FGET (f, tool_bar_window))
+      || (w = XWINDOW (FGET (f, tool_bar_window)),
           WINDOW_TOTAL_LINES (w) == 0))
     return 0;
 
@@ -11903,7 +11903,7 @@ redisplay_tool_bar (struct frame *f)
 
   /* Build a string that represents the contents of the tool-bar.  */
   build_desired_tool_bar_string (f);
-  reseat_to_string (&it, NULL, FVAR (f, desired_tool_bar_string), 0, 0, 0, -1);
+  reseat_to_string (&it, NULL, FGET (f, desired_tool_bar_string), 0, 0, 0, -1);
   /* FIXME: This should be controlled by a user option.  But it
      doesn't make sense to have an R2L tool bar if the menu bar cannot
      be drawn also R2L, and making the menu bar R2L is tricky due
@@ -12060,14 +12060,14 @@ tool_bar_item_info (struct frame *f, struct glyph *glyph, int *prop_idx)
   /* This function can be called asynchronously, which means we must
      exclude any possibility that Fget_text_property signals an
      error.  */
-  charpos = min (SCHARS (FVAR (f, current_tool_bar_string)), glyph->charpos);
+  charpos = min (SCHARS (FGET (f, current_tool_bar_string)), glyph->charpos);
   charpos = max (0, charpos);
 
   /* Get the text property `menu-item' at pos. The value of that
      property is the start index of this item's properties in
      F->tool_bar_items.  */
   prop = Fget_text_property (make_number (charpos),
-                            Qmenu_item, FVAR (f, current_tool_bar_string));
+                            Qmenu_item, FGET (f, current_tool_bar_string));
   if (INTEGERP (prop))
     {
       *prop_idx = XINT (prop);
@@ -12095,7 +12095,7 @@ get_tool_bar_item (struct frame *f, int x, int y, struct glyph **glyph,
                   int *hpos, int *vpos, int *prop_idx)
 {
   Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f);
-  struct window *w = XWINDOW (FVAR (f, tool_bar_window));
+  struct window *w = XWINDOW (FGET (f, tool_bar_window));
   int area;
 
   /* Find the glyph under X/Y.  */
@@ -12109,7 +12109,7 @@ get_tool_bar_item (struct frame *f, int x, int y, struct glyph **glyph,
     return -1;
 
   /* Is mouse on the highlighted item?  */
-  if (EQ (FVAR (f, tool_bar_window), hlinfo->mouse_face_window)
+  if (EQ (FGET (f, tool_bar_window), hlinfo->mouse_face_window)
       && *vpos >= hlinfo->mouse_face_beg_row
       && *vpos <= hlinfo->mouse_face_end_row
       && (*vpos > hlinfo->mouse_face_beg_row
@@ -12134,7 +12134,7 @@ handle_tool_bar_click (struct frame *f, int x, int y, int down_p,
                       int modifiers)
 {
   Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f);
-  struct window *w = XWINDOW (FVAR (f, tool_bar_window));
+  struct window *w = XWINDOW (FGET (f, tool_bar_window));
   int hpos, vpos, prop_idx;
   struct glyph *glyph;
   Lisp_Object enabled_p;
@@ -12145,7 +12145,7 @@ handle_tool_bar_click (struct frame *f, int x, int y, int down_p,
     return;
 
   /* If item is disabled, do nothing.  */
-  enabled_p = AREF (FVAR (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_ENABLED_P);
+  enabled_p = AREF (FGET (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_ENABLED_P);
   if (NILP (enabled_p))
     return;
 
@@ -12166,7 +12166,7 @@ handle_tool_bar_click (struct frame *f, int x, int y, int down_p,
       show_mouse_face (hlinfo, DRAW_IMAGE_RAISED);
       hlinfo->mouse_face_image_state = DRAW_IMAGE_RAISED;
 
-      key = AREF (FVAR (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_KEY);
+      key = AREF (FGET (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_KEY);
 
       XSETFRAME (frame, f);
       event.kind = TOOL_BAR_EVENT;
@@ -12191,7 +12191,7 @@ handle_tool_bar_click (struct frame *f, int x, int y, int down_p,
 static void
 note_tool_bar_highlight (struct frame *f, int x, int y)
 {
-  Lisp_Object window = FVAR (f, tool_bar_window);
+  Lisp_Object window = FGET (f, tool_bar_window);
   struct window *w = XWINDOW (window);
   Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
   Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f);
@@ -12237,7 +12237,7 @@ note_tool_bar_highlight (struct frame *f, int x, int y)
   draw = mouse_down_p ? DRAW_IMAGE_SUNKEN : DRAW_IMAGE_RAISED;
 
   /* If tool-bar item is not enabled, don't highlight it.  */
-  enabled_p = AREF (FVAR (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_ENABLED_P);
+  enabled_p = AREF (FGET (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_ENABLED_P);
   if (!NILP (enabled_p))
     {
       /* Compute the x-position of the glyph.  In front and past the
@@ -12271,9 +12271,9 @@ note_tool_bar_highlight (struct frame *f, int x, int y)
      XTread_socket does the rest.  */
   help_echo_object = help_echo_window = Qnil;
   help_echo_pos = -1;
-  help_echo_string = AREF (FVAR (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_HELP);
+  help_echo_string = AREF (FGET (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_HELP);
   if (NILP (help_echo_string))
-    help_echo_string = AREF (FVAR (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_CAPTION);
+    help_echo_string = AREF (FGET (f, tool_bar_items), prop_idx + TOOL_BAR_ITEM_CAPTION);
 }
 
 #endif /* HAVE_WINDOW_SYSTEM */
@@ -12854,7 +12854,7 @@ select_frame_for_redisplay (Lisp_Object frame)
   selected_frame = frame;
 
   do {
-    for (tail = FVAR (XFRAME (frame), param_alist);
+    for (tail = FGET (XFRAME (frame), param_alist);
         CONSP (tail); tail = XCDR (tail))
       if (CONSP (XCAR (tail))
          && (tem = XCAR (XCAR (tail)),
@@ -13428,7 +13428,7 @@ redisplay_internal (void)
                  if (!f->already_hscrolled_p)
                    {
                      f->already_hscrolled_p = 1;
-                     if (hscroll_windows (FVAR (f, root_window)))
+                     if (hscroll_windows (FGET (f, root_window)))
                        goto retry;
                    }
 
@@ -13441,7 +13441,7 @@ redisplay_internal (void)
                  STOP_POLLING;
 
                  /* Update the display.  */
-                 set_window_update_flags (XWINDOW (FVAR (f, root_window)), 1);
+                 set_window_update_flags (XWINDOW (FGET (f, root_window)), 1);
                  pending |= update_frame (f, 0, 0);
                  f->updated_p = 1;
                }
@@ -13454,7 +13454,7 @@ redisplay_internal (void)
           and selected_window to be temporarily out-of-sync but let's make
           sure this stays contained.  */
        select_frame_for_redisplay (old_frame);
-      eassert (EQ (FVAR (XFRAME (selected_frame), selected_window),
+      eassert (EQ (FGET (XFRAME (selected_frame), selected_window),
                   selected_window));
 
       if (!pending)
@@ -13467,7 +13467,7 @@ redisplay_internal (void)
              struct frame *f = XFRAME (frame);
               if (f->updated_p)
                 {
-                  mark_window_display_accurate (FVAR (f, root_window), 1);
+                  mark_window_display_accurate (FGET (f, root_window), 1);
                   if (FRAME_TERMINAL (f)->frame_up_to_date_hook)
                     FRAME_TERMINAL (f)->frame_up_to_date_hook (f);
                 }
@@ -16163,7 +16163,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
          if (FRAME_EXTERNAL_TOOL_BAR (f))
            redisplay_tool_bar (f);
 #else
-         if (WINDOWP (FVAR (f, tool_bar_window))
+         if (WINDOWP (FGET (f, tool_bar_window))
              && (FRAME_TOOL_BAR_LINES (f) > 0
                  || !NILP (Vauto_resize_tool_bars))
              && redisplay_tool_bar (f))
@@ -18119,7 +18119,7 @@ GLYPH > 1 or omitted means dump glyphs in long form.  */)
   (Lisp_Object row, Lisp_Object glyphs)
 {
   struct frame *sf = SELECTED_FRAME ();
-  struct glyph_matrix *m = XWINDOW (FVAR (sf, tool_bar_window))->current_matrix;
+  struct glyph_matrix *m = XWINDOW (FGET (sf, tool_bar_window))->current_matrix;
   EMACS_INT vpos;
 
   CHECK_NUMBER (row);
@@ -20104,8 +20104,8 @@ display_menu_bar (struct window *w)
       /* Menu bar lines are displayed in the desired matrix of the
         dummy window menu_bar_window.  */
       struct window *menu_w;
-      eassert (WINDOWP (FVAR (f, menu_bar_window)));
-      menu_w = XWINDOW (FVAR (f, menu_bar_window));
+      eassert (WINDOWP (FGET (f, menu_bar_window)));
+      menu_w = XWINDOW (FGET (f, menu_bar_window));
       init_iterator (&it, menu_w, -1, -1, menu_w->desired_matrix->rows,
                     MENU_FACE_ID);
       it.first_visible_x = 0;
@@ -21409,10 +21409,10 @@ decode_mode_spec (struct window *w, register int c, int field_width,
 
     case 'F':
       /* %F displays the frame name.  */
-      if (!NILP (FVAR (f, title)))
-       return SSDATA (FVAR (f, title));
+      if (!NILP (FGET (f, title)))
+       return SSDATA (FGET (f, title));
       if (f->explicit_name || ! FRAME_WINDOW_P (f))
-       return SSDATA (FVAR (f, name));
+       return SSDATA (FGET (f, name));
       return "Emacs";
 
     case 'f':
@@ -25576,7 +25576,7 @@ get_window_cursor_type (struct window *w, struct glyph *glyph, int *width,
     }
 
   /* Detect a nonselected window or nonselected frame.  */
-  else if (w != XWINDOW (FVAR (f, selected_window))
+  else if (w != XWINDOW (FGET (f, selected_window))
           || f != FRAME_X_DISPLAY_INFO (f)->x_highlight_frame)
     {
       *active_cursor = 0;
@@ -26118,7 +26118,7 @@ update_cursor_in_window_tree (struct window *w, int on_p)
 void
 x_update_cursor (struct frame *f, int on_p)
 {
-  update_cursor_in_window_tree (XWINDOW (FVAR (f, root_window)), on_p);
+  update_cursor_in_window_tree (XWINDOW (FGET (f, root_window)), on_p);
 }
 
 
@@ -26277,7 +26277,7 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw)
   if (FRAME_WINDOW_P (f))
     {
       if (draw == DRAW_NORMAL_TEXT
-         && !EQ (hlinfo->mouse_face_window, FVAR (f, tool_bar_window)))
+         && !EQ (hlinfo->mouse_face_window, FGET (f, tool_bar_window)))
        FRAME_RIF (f)->define_frame_cursor (f, FRAME_X_OUTPUT (f)->text_cursor);
       else if (draw == DRAW_MOUSE_FACE)
        FRAME_RIF (f)->define_frame_cursor (f, FRAME_X_OUTPUT (f)->hand_cursor);
@@ -27633,7 +27633,7 @@ note_mouse_highlight (struct frame *f, int x, int y)
 #ifdef HAVE_WINDOW_SYSTEM
   /* Handle tool-bar window differently since it doesn't display a
      buffer.  */
-  if (EQ (window, FVAR (f, tool_bar_window)))
+  if (EQ (window, FGET (f, tool_bar_window)))
     {
       note_tool_bar_highlight (f, x, y);
       return;
@@ -28543,18 +28543,18 @@ expose_frame (struct frame *f, int x, int y, int w, int h)
     }
 
   TRACE ((stderr, "(%d, %d, %d, %d)\n", r.x, r.y, r.width, r.height));
-  mouse_face_overwritten_p = expose_window_tree (XWINDOW (FVAR (f, root_window)), &r);
+  mouse_face_overwritten_p = expose_window_tree (XWINDOW (FGET (f, root_window)), &r);
 
-  if (WINDOWP (FVAR (f, tool_bar_window)))
+  if (WINDOWP (FGET (f, tool_bar_window)))
     mouse_face_overwritten_p
-      |= expose_window (XWINDOW (FVAR (f, tool_bar_window)), &r);
+      |= expose_window (XWINDOW (FGET (f, tool_bar_window)), &r);
 
 #ifdef HAVE_X_WINDOWS
 #ifndef MSDOS
 #ifndef USE_X_TOOLKIT
-  if (WINDOWP (FVAR (f, menu_bar_window)))
+  if (WINDOWP (FGET (f, menu_bar_window)))
     mouse_face_overwritten_p
-      |= expose_window (XWINDOW (FVAR (f, menu_bar_window)), &r);
+      |= expose_window (XWINDOW (FGET (f, menu_bar_window)), &r);
 #endif /* not USE_X_TOOLKIT */
 #endif
 #endif
index 6aab7ed..bdee8fd 100644 (file)
@@ -2053,7 +2053,7 @@ lface_from_face_name_no_resolve (struct frame *f, Lisp_Object face_name,
   Lisp_Object lface;
 
   if (f)
-    lface = assq_no_quit (face_name, FVAR (f, face_alist));
+    lface = assq_no_quit (face_name, FGET (f, face_alist));
   else
     lface = assq_no_quit (face_name, Vface_new_frame_defaults);
 
@@ -2680,8 +2680,8 @@ Value is a vector of face attributes.  */)
          lface = Fmake_vector (make_number (LFACE_VECTOR_SIZE),
                                Qunspecified);
          ASET (lface, 0, Qface);
-         FVAR (f, face_alist) = Fcons (Fcons (face, lface), FVAR (f,
-                                                                 face_alist));
+         FSET (f, face_alist,
+               Fcons (Fcons (face, lface), FGET (f, face_alist)));
        }
       else
        for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
@@ -3360,7 +3360,7 @@ update_face_from_frame_parameter (struct frame *f, Lisp_Object param,
   /* If there are no faces yet, give up.  This is the case when called
      from Fx_create_frame, and we do the necessary things later in
      face-set-after-frame-defaults.  */
-  if (NILP (FVAR (f, face_alist)))
+  if (NILP (FGET (f, face_alist)))
     return;
 
   if (EQ (param, Qforeground_color))
@@ -4046,7 +4046,7 @@ For internal use only.  */)
   (Lisp_Object frame)
 {
   struct frame *f = frame_or_selected_frame (frame, 0);
-  return FVAR (f, face_alist);
+  return FGET (f, face_alist);
 }
 
 
@@ -4337,7 +4337,7 @@ free_realized_faces (struct face_cache *c)
         matrices as invalid because they will reference faces freed
         above.  This function is also called when a frame is
         destroyed.  In this case, the root window of F is nil.  */
-      if (WINDOWP (FVAR (f, root_window)))
+      if (WINDOWP (FGET (f, root_window)))
        {
          clear_current_matrices (f);
          ++windows_or_buffers_changed;
@@ -5110,7 +5110,7 @@ face for italic.  */)
        {
          frame = XCAR (fl_tail);
          if (!NILP (Fequal (Fcdr (Fassq (Qdisplay,
-                                         FVAR (XFRAME (frame), param_alist))),
+                                         FGET (XFRAME (frame), param_alist))),
                             display)))
            break;
        }
@@ -5406,7 +5406,7 @@ realize_default_face (struct frame *f)
     {
       /* This function is called so early that colors are not yet
         set in the frame parameter list.  */
-      Lisp_Object color = Fassq (Qforeground_color, FVAR (f, param_alist));
+      Lisp_Object color = Fassq (Qforeground_color, FGET (f, param_alist));
 
       if (CONSP (color) && STRINGP (XCDR (color)))
        ASET (lface, LFACE_FOREGROUND_INDEX, XCDR (color));
@@ -5422,7 +5422,7 @@ realize_default_face (struct frame *f)
     {
       /* This function is called so early that colors are not yet
         set in the frame parameter list.  */
-      Lisp_Object color = Fassq (Qbackground_color, FVAR (f, param_alist));
+      Lisp_Object color = Fassq (Qbackground_color, FGET (f, param_alist));
       if (CONSP (color) && STRINGP (XCDR (color)))
        ASET (lface, LFACE_BACKGROUND_INDEX, XCDR (color));
       else if (FRAME_WINDOW_P (f))
index 8bbb4e1..e92b0e5 100644 (file)
@@ -665,7 +665,7 @@ x_set_tool_bar_position (struct frame *f,
 
 #ifdef USE_GTK
   if (xg_change_toolbar_position (f, new_value))
-    FVAR (f, tool_bar_position) = new_value;
+    FSET (f, tool_bar_position, new_value);
 #endif
 }
 
@@ -1123,9 +1123,9 @@ x_set_icon_type (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
   BLOCK_INPUT;
   if (NILP (arg))
     result = x_text_icon (f,
-                         SSDATA ((!NILP (FVAR (f, icon_name))
-                                  ? FVAR (f, icon_name)
-                                  : FVAR (f, name))));
+                         SSDATA ((!NILP (FGET (f, icon_name))
+                                  ? FGET (f, icon_name)
+                                  : FGET (f, name))));
   else
     result = x_bitmap_icon (f, arg);
 
@@ -1152,7 +1152,7 @@ x_set_icon_name (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
   else if (!NILP (arg) || NILP (oldval))
     return;
 
-  FVAR (f, icon_name) = arg;
+  FSET (f, icon_name, arg);
 
   if (f->output_data.x->icon_bitmap != 0)
     return;
@@ -1160,11 +1160,11 @@ x_set_icon_name (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
   BLOCK_INPUT;
 
   result = x_text_icon (f,
-                       SSDATA ((!NILP (FVAR (f, icon_name))
-                                ? FVAR (f, icon_name)
-                                : !NILP (FVAR (f, title))
-                                ? FVAR (f, title)
-                                : FVAR (f, name))));
+                       SSDATA ((!NILP (FGET (f, icon_name))
+                                ? FGET (f, icon_name)
+                                : !NILP (FGET (f, title))
+                                ? FGET (f, title)
+                                : FGET (f, name))));
 
   if (result)
     {
@@ -1253,8 +1253,8 @@ x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
          UNBLOCK_INPUT;
        }
 
-      if (nlines == 0 && WINDOWP (FVAR (f, menu_bar_window)))
-       clear_glyph_matrix (XWINDOW (FVAR (f, menu_bar_window))->current_matrix);
+      if (nlines == 0 && WINDOWP (FGET (f, menu_bar_window)))
+       clear_glyph_matrix (XWINDOW (FGET (f, menu_bar_window))->current_matrix);
     }
 #endif /* not USE_X_TOOLKIT && not USE_GTK */
   adjust_glyphs (f);
@@ -1352,8 +1352,8 @@ x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
           UNBLOCK_INPUT;
         }
 
-      if (WINDOWP (FVAR (f, tool_bar_window)))
-       clear_glyph_matrix (XWINDOW (FVAR (f, tool_bar_window))->current_matrix);
+      if (WINDOWP (FGET (f, tool_bar_window)))
+       clear_glyph_matrix (XWINDOW (FGET (f, tool_bar_window))->current_matrix);
     }
 
     run_window_configuration_change_hook (f);
@@ -1548,7 +1548,7 @@ x_set_name_internal (FRAME_PTR f, Lisp_Object name)
        if (text.nitems != bytes)
          error ("Window name too large");
 
-       if (!STRINGP (FVAR (f, icon_name)))
+       if (!STRINGP (FGET (f, icon_name)))
          {
            icon = text;
            encoded_icon_name = encoded_name;
@@ -1556,7 +1556,7 @@ x_set_name_internal (FRAME_PTR f, Lisp_Object name)
        else
          {
            /* See the above comment "Note: Encoding strategy".  */
-           icon.value = x_encode_text (FVAR (f, icon_name), coding_system, 0,
+           icon.value = x_encode_text (FGET (f, icon_name), coding_system, 0,
                                        &bytes, &stringp, &do_free_icon_value);
            icon.encoding = (stringp ? XA_STRING
                             : FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT);
@@ -1565,7 +1565,7 @@ x_set_name_internal (FRAME_PTR f, Lisp_Object name)
            if (icon.nitems != bytes)
              error ("Icon name too large");
 
-           encoded_icon_name = ENCODE_UTF_8 (FVAR (f, icon_name));
+           encoded_icon_name = ENCODE_UTF_8 (FGET (f, icon_name));
          }
 
 #ifdef USE_GTK
@@ -1632,7 +1632,7 @@ x_set_name (struct frame *f, Lisp_Object name, int explicit)
       /* Check for no change needed in this very common case
         before we do any consing.  */
       if (!strcmp (FRAME_X_DISPLAY_INFO (f)->x_id_name,
-                  SSDATA (FVAR (f, name))))
+                  SSDATA (FGET (f, name))))
        return;
       name = build_string (FRAME_X_DISPLAY_INFO (f)->x_id_name);
     }
@@ -1640,15 +1640,15 @@ x_set_name (struct frame *f, Lisp_Object name, int explicit)
     CHECK_STRING (name);
 
   /* Don't change the name if it's already NAME.  */
-  if (! NILP (Fstring_equal (name, FVAR (f, name))))
+  if (! NILP (Fstring_equal (name, FGET (f, name))))
     return;
 
-  FVAR (f, name) = name;
+  FSET (f, name, name);
 
   /* For setting the frame title, the title parameter should override
      the name parameter.  */
-  if (! NILP (FVAR (f, title)))
-    name = FVAR (f, title);
+  if (! NILP (FGET (f, title)))
+    name = FGET (f, title);
 
   x_set_name_internal (f, name);
 }
@@ -1678,15 +1678,15 @@ static void
 x_set_title (struct frame *f, Lisp_Object name, Lisp_Object old_name)
 {
   /* Don't change the title if it's already NAME.  */
-  if (EQ (name, FVAR (f, title)))
+  if (EQ (name, FGET (f, title)))
     return;
 
   update_mode_lines = 1;
 
-  FVAR (f, title) = name;
+  FSET (f, title, name);
 
   if (NILP (name))
-    name = FVAR (f, name);
+    name = FGET (f, name);
   else
     CHECK_STRING (name);
 
@@ -2571,8 +2571,8 @@ x_window (struct frame *f, long window_prompting, int minibuffer_only)
     int explicit = f->explicit_name;
 
     f->explicit_name = 0;
-    name = FVAR (f, name);
-    FVAR (f, name) = Qnil;
+    name = FGET (f, name);
+    FSET (f, name, Qnil);
     x_set_name (f, name, explicit);
   }
 
@@ -2714,8 +2714,8 @@ x_window (struct frame *f)
     int explicit = f->explicit_name;
 
     f->explicit_name = 0;
-    name = FVAR (f, name);
-    FVAR (f, name) = Qnil;
+    name = FGET (f, name);
+    FSET (f, name, Qnil);
     x_set_name (f, name, explicit);
   }
 
@@ -2791,9 +2791,9 @@ x_icon (struct frame *f, Lisp_Object parms)
         : NormalState));
 #endif
 
-  x_text_icon (f, SSDATA ((!NILP (FVAR (f, icon_name))
-                          ? FVAR (f, icon_name)
-                          : FVAR (f, name))));
+  x_text_icon (f, SSDATA ((!NILP (FGET (f, icon_name))
+                          ? FGET (f, icon_name)
+                          : FGET (f, name))));
 
   UNBLOCK_INPUT;
 }
@@ -3135,11 +3135,11 @@ This function is an internal primitive--use `make-frame' instead.  */)
   f->output_data.x->scroll_bar_bottom_shadow_pixel = -1;
 #endif /* USE_TOOLKIT_SCROLL_BARS */
 
-  FVAR (f, icon_name)
-    = x_get_arg (dpyinfo, parms, Qicon_name, "iconName", "Title",
-                RES_TYPE_STRING);
-  if (! STRINGP (FVAR (f, icon_name)))
-    FVAR (f, icon_name) = Qnil;
+  FSET (f, icon_name,
+       x_get_arg (dpyinfo, parms, Qicon_name, "iconName", "Title",
+                  RES_TYPE_STRING));
+  if (! STRINGP (FGET (f, icon_name)))
+    FSET (f, icon_name, Qnil);
 
   FRAME_X_DISPLAY_INFO (f) = dpyinfo;
 
@@ -3196,12 +3196,12 @@ This function is an internal primitive--use `make-frame' instead.  */)
      be set.  */
   if (EQ (name, Qunbound) || NILP (name))
     {
-      FVAR (f, name) = build_string (dpyinfo->x_id_name);
+      FSET (f, name, build_string (dpyinfo->x_id_name));
       f->explicit_name = 0;
     }
   else
     {
-      FVAR (f, name) = name;
+      FSET (f, name, name);
       f->explicit_name = 1;
       /* use the frame's title when getting resources for this frame.  */
       specbind (Qx_resource_name, name);
@@ -3340,7 +3340,7 @@ This function is an internal primitive--use `make-frame' instead.  */)
   x_default_parameter (f, parms, Qfullscreen, Qnil,
                        "fullscreen", "Fullscreen", RES_TYPE_SYMBOL);
   x_default_parameter (f, parms, Qtool_bar_position,
-                       FVAR (f, tool_bar_position), 0, 0, RES_TYPE_SYMBOL);
+                       FGET (f, tool_bar_position), 0, 0, RES_TYPE_SYMBOL);
 
   /* Compute the size of the X window.  */
   window_prompting = x_figure_window_size (f, parms, 1);
@@ -3468,7 +3468,7 @@ This function is an internal primitive--use `make-frame' instead.  */)
      by x_get_arg and friends, now go in the misc. alist of the frame.  */
   for (tem = parms; CONSP (tem); tem = XCDR (tem))
     if (CONSP (XCAR (tem)) && !NILP (XCAR (XCAR (tem))))
-      FVAR (f, param_alist) = Fcons (XCAR (tem), FVAR (f, param_alist));
+      FSET (f, param_alist, Fcons (XCAR (tem), FGET (f, param_alist)));
 
   UNGCPRO;
 
@@ -4621,7 +4621,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
   f->output_data.x->scroll_bar_top_shadow_pixel = -1;
   f->output_data.x->scroll_bar_bottom_shadow_pixel = -1;
 #endif /* USE_TOOLKIT_SCROLL_BARS */
-  FVAR (f, icon_name) = Qnil;
+  FSET (f, icon_name, Qnil);
   FRAME_X_DISPLAY_INFO (f) = dpyinfo;
   f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window;
   f->output_data.x->explicit_parent = 0;
@@ -4663,12 +4663,12 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
      be set.  */
   if (EQ (name, Qunbound) || NILP (name))
     {
-      FVAR (f, name) = build_string (dpyinfo->x_id_name);
+      FSET (f, name, build_string (dpyinfo->x_id_name));
       f->explicit_name = 0;
     }
   else
     {
-      FVAR (f, name) = name;
+      FSET (f, name, name);
       f->explicit_name = 1;
       /* use the frame's title when getting resources for this frame.  */
       specbind (Qx_resource_name, name);
index eff4bb1..17d493b 100644 (file)
@@ -835,7 +835,7 @@ menubar_selection_callback (Widget widget, LWLIB_ID id, XtPointer client_data)
   if (!f)
     return;
   find_and_call_menu_selection (f, f->menu_bar_items_used,
-                                FVAR (f, menu_bar_vector), client_data);
+                                FGET (f, menu_bar_vector), client_data);
 }
 #endif /* not USE_GTK */
 \f
@@ -1008,20 +1008,20 @@ set_frame_menubar (FRAME_PTR f, int first_time, int deep_p)
       if (! NILP (Vlucid_menu_bar_dirty_flag))
        call0 (Qrecompute_lucid_menubar);
       safe_run_hooks (Qmenu_bar_update_hook);
-      FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f));
+      FSET (f, menu_bar_items, menu_bar_items (FRAME_MENU_BAR_ITEMS (f)));
 
       items = FRAME_MENU_BAR_ITEMS (f);
 
       /* Save the frame's previous menu bar contents data.  */
       if (previous_menu_items_used)
-       memcpy (previous_items, XVECTOR (FVAR (f, menu_bar_vector))->contents,
+       memcpy (previous_items, XVECTOR (FGET (f, menu_bar_vector))->contents,
                previous_menu_items_used * word_size);
 
       /* Fill in menu_items with the current menu bar contents.
         This can evaluate Lisp code.  */
       save_menu_items ();
 
-      menu_items = FVAR (f, menu_bar_vector);
+      menu_items = FGET (f, menu_bar_vector);
       menu_items_allocated = VECTORP (menu_items) ? ASIZE (menu_items) : 0;
       subitems = ASIZE (items) / 4;
       submenu_start = alloca ((subitems + 1) * sizeof *submenu_start);
@@ -1100,7 +1100,7 @@ set_frame_menubar (FRAME_PTR f, int first_time, int deep_p)
        }
 
       /* The menu items are different, so store them in the frame.  */
-      FVAR (f, menu_bar_vector) = menu_items;
+      FSET (f, menu_bar_vector, menu_items);
       f->menu_bar_items_used = menu_items_used;
 
       /* This undoes save_menu_items.  */
@@ -1283,7 +1283,7 @@ initialize_frame_menubar (FRAME_PTR f)
 {
   /* This function is called before the first chance to redisplay
      the frame.  It has to be, so the frame will have the right size.  */
-  FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f));
+  FSET (f, menu_bar_items, menu_bar_items (FRAME_MENU_BAR_ITEMS (f)));
   set_frame_menubar (f, 1, 1);
 }
 
index ac846f2..ea74c2c 100644 (file)
@@ -3585,7 +3585,7 @@ x_frame_rehighlight (struct x_display_info *dpyinfo)
           : dpyinfo->x_focus_frame);
       if (! FRAME_LIVE_P (dpyinfo->x_highlight_frame))
        {
-         FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame) = Qnil;
+         FSET (dpyinfo->x_focus_frame, focus_frame, Qnil);
          dpyinfo->x_highlight_frame = dpyinfo->x_focus_frame;
        }
     }
@@ -4957,6 +4957,7 @@ x_scroll_bar_create (struct window *w, int top, int left, int width, int height)
   struct frame *f = XFRAME (WVAR (w, frame));
   struct scroll_bar *bar
     = ALLOCATE_PSEUDOVECTOR (struct scroll_bar, x_window, PVEC_OTHER);
+  Lisp_Object barobj;
 
   BLOCK_INPUT;
 
@@ -5017,7 +5018,8 @@ x_scroll_bar_create (struct window *w, int top, int left, int width, int height)
   /* Add bar to its frame's list of scroll bars.  */
   bar->next = FRAME_SCROLL_BARS (f);
   bar->prev = Qnil;
-  XSETVECTOR (FRAME_SCROLL_BARS (f), bar);
+  XSETVECTOR (barobj, bar);
+  FSET (f, scroll_bars, barobj);
   if (!NILP (bar->next))
     XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar);
 
@@ -5416,12 +5418,12 @@ XTcondemn_scroll_bars (FRAME_PTR frame)
     {
       Lisp_Object bar;
       bar = FRAME_SCROLL_BARS (frame);
-      FRAME_SCROLL_BARS (frame) = XSCROLL_BAR (bar)->next;
+      FSET (frame, scroll_bars, XSCROLL_BAR (bar)->next);
       XSCROLL_BAR (bar)->next = FRAME_CONDEMNED_SCROLL_BARS (frame);
       XSCROLL_BAR (bar)->prev = Qnil;
       if (! NILP (FRAME_CONDEMNED_SCROLL_BARS (frame)))
        XSCROLL_BAR (FRAME_CONDEMNED_SCROLL_BARS (frame))->prev = bar;
-      FRAME_CONDEMNED_SCROLL_BARS (frame) = bar;
+      FSET (frame, condemned_scroll_bars, bar);
     }
 }
 
@@ -5434,6 +5436,7 @@ XTredeem_scroll_bar (struct window *window)
 {
   struct scroll_bar *bar;
   struct frame *f;
+  Lisp_Object barobj;
 
   /* We can't redeem this window's scroll bar if it doesn't have one.  */
   if (NILP (WVAR (window, vertical_scroll_bar)))
@@ -5452,7 +5455,7 @@ XTredeem_scroll_bar (struct window *window)
        return;
       else if (EQ (FRAME_CONDEMNED_SCROLL_BARS (f),
                   WVAR (window, vertical_scroll_bar)))
-       FRAME_CONDEMNED_SCROLL_BARS (f) = bar->next;
+       FSET (f, condemned_scroll_bars, bar->next);
       else
        /* If its prev pointer is nil, it must be at the front of
           one or the other!  */
@@ -5466,7 +5469,8 @@ XTredeem_scroll_bar (struct window *window)
 
   bar->next = FRAME_SCROLL_BARS (f);
   bar->prev = Qnil;
-  XSETVECTOR (FRAME_SCROLL_BARS (f), bar);
+  XSETVECTOR (barobj, bar);
+  FSET (f, scroll_bars, barobj);
   if (! NILP (bar->next))
     XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar);
 }
@@ -5483,7 +5487,7 @@ XTjudge_scroll_bars (FRAME_PTR f)
 
   /* Clear out the condemned list now so we won't try to process any
      more events on the hapless scroll bars.  */
-  FRAME_CONDEMNED_SCROLL_BARS (f) = Qnil;
+  FSET (f, condemned_scroll_bars, Qnil);
 
   for (; ! NILP (bar); bar = next)
     {
@@ -6357,7 +6361,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr,
         mouse highlighting.  */
       if (!hlinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
          && (f == 0
-             || !EQ (FVAR (f, tool_bar_window), hlinfo->mouse_face_window)))
+             || !EQ (FGET (f, tool_bar_window), hlinfo->mouse_face_window)))
         {
           clear_mouse_face (hlinfo);
           hlinfo->mouse_face_hidden = 1;
@@ -6904,15 +6908,15 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr,
         if (f)
           {
             /* Is this in the tool-bar?  */
-            if (WINDOWP (FVAR (f, tool_bar_window))
-                && WINDOW_TOTAL_LINES (XWINDOW (FVAR (f, tool_bar_window))))
+            if (WINDOWP (FGET (f, tool_bar_window))
+                && WINDOW_TOTAL_LINES (XWINDOW (FGET (f, tool_bar_window))))
               {
                 Lisp_Object window;
                 int x = event.xbutton.x;
                 int y = event.xbutton.y;
 
                 window = window_from_coordinates (f, x, y, 0, 1);
-                tool_bar_p = EQ (window, FVAR (f, tool_bar_window));
+                tool_bar_p = EQ (window, FGET (f, tool_bar_window));
 
                 if (tool_bar_p && event.xbutton.button < 4)
                   {
@@ -7503,7 +7507,7 @@ x_draw_window_cursor (struct window *w, struct glyph_row *glyph_row, int x, int
        }
 
 #ifdef HAVE_X_I18N
-      if (w == XWINDOW (FVAR (f, selected_window)))
+      if (w == XWINDOW (FGET (f, selected_window)))
        if (FRAME_XIC (f) && (FRAME_XIC_STYLE (f) & XIMPreeditPosition))
          xic_set_preeditarea (w, x, y);
 #endif
@@ -8154,7 +8158,7 @@ xim_instantiate_callback (Display *display, XPointer client_data, XPointer call_
                  xic_set_statusarea (f);
                if (FRAME_XIC_STYLE (f) & XIMPreeditPosition)
                  {
-                   struct window *w = XWINDOW (FVAR (f, selected_window));
+                   struct window *w = XWINDOW (FGET (f, selected_window));
                    xic_set_preeditarea (w, w->cursor.x, w->cursor.y);
                  }
              }
@@ -8942,7 +8946,7 @@ x_set_window_size (struct frame *f, int change_gravity, int cols, int rows)
 #endif /* not USE_GTK */
 
   /* If cursor was outside the new size, mark it as off.  */
-  mark_window_cursors_off (XWINDOW (FVAR (f, root_window)));
+  mark_window_cursors_off (XWINDOW (FGET (f, root_window)));
 
   /* Clear out any recollection of where the mouse highlighting was,
      since it might be in a place that's outside the new frame size.