]> code.delx.au - gnu-emacs/commitdiff
(Vparam_value_alist): New variable.
authorGerd Moellmann <gerd@gnu.org>
Thu, 7 Sep 2000 11:37:48 +0000 (11:37 +0000)
committerGerd Moellmann <gerd@gnu.org>
Thu, 7 Sep 2000 11:37:48 +0000 (11:37 +0000)
(syms_of_xfaces): Initialize it.
(Finternal_set_lisp_face_attribute): Avoid more consing.

src/xfaces.c

index 84f43d81d695a60ae36c87f5dd59f04cb4540c6a..fe281082d43bc3453e093049a203e18438c48e68 100644 (file)
@@ -435,6 +435,11 @@ int face_change_count;
 
 int tty_suppress_bold_inverse_default_colors_p;
 
+/* A list of the form `((x . y))' used to avoid consing in
+   Finternal_set_lisp_face_attribute.  */
+
+static Lisp_Object Vparam_value_alist;
+
 /* The total number of colors currently allocated.  */
 
 #if GLYPH_DEBUG
@@ -4032,7 +4037,13 @@ FRAME 0 means change the face on all frames, and change the default\n\
        }
 
       if (!NILP (param))
-       Fmodify_frame_parameters (frame, Fcons (Fcons (param, value), Qnil));
+       {
+         Lisp_Object cons;
+         cons = XCAR (Vparam_value_alist);
+         XCAR (cons) = param;
+         XCDR (cons) = value;
+         Fmodify_frame_parameters (frame, Vparam_value_alist);
+       }
     }
 
 #endif /* HAVE_WINDOW_SYSTEM */
@@ -7009,6 +7020,8 @@ syms_of_xfaces ()
   Qtty_color_alist = intern ("tty-color-alist");
   staticpro (&Qtty_color_alist);
 
+  Vparam_value_alist = Fcons (Fcons (Qnil, Qnil), Qnil);
+  staticpro (&Vparam_value_alist);
   Vface_alternative_font_family_alist = Qnil;
   staticpro (&Vface_alternative_font_family_alist);