changeset 15566:3d03a3fb8757

(Fx_create_frame): Gcpro parms, parent, and name.
author Richard M. Stallman <rms@gnu.org>
date Sat, 29 Jun 1996 06:45:08 +0000
parents 2a0d1c1d2746
children 65ec32b3b89f
files src/xfns.c
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/xfns.c	Sat Jun 29 06:21:48 1996 +0000
+++ b/src/xfns.c	Sat Jun 29 06:45:08 1996 +0000
@@ -3011,7 +3011,7 @@
   long window_prompting = 0;
   int width, height;
   int count = specpdl_ptr - specpdl;
-  struct gcpro gcpro1;
+  struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
   Lisp_Object display;
   struct x_display_info *dpyinfo;
   Lisp_Object parent;
@@ -3049,6 +3049,11 @@
   if (! NILP (parent))
     CHECK_NUMBER (parent, 0);
 
+  /* make_frame_without_minibuffer can run Lisp code and garbage collect.  */
+  /* No need to protect DISPLAY because that's not used after passing
+     it to make_frame_without_minibuffer.  */
+  frame = Qnil;
+  GCPRO4 (parms, parent, name, frame);
   tem = x_get_arg (parms, Qminibuffer, 0, 0, symbol);
   if (EQ (tem, Qnone) || NILP (tem))
     f = make_frame_without_minibuffer (Qnil, kb, display);
@@ -3062,12 +3067,11 @@
   else
     f = make_frame (1);
 
+  XSETFRAME (frame, f);
+
   /* Note that X Windows does support scroll bars.  */
   FRAME_CAN_HAVE_SCROLL_BARS (f) = 1;
 
-  XSETFRAME (frame, f);
-  GCPRO1 (frame);
-
   f->output_method = output_x_window;
   f->output_data.x = (struct x_output *) xmalloc (sizeof (struct x_output));
   bzero (f->output_data.x, sizeof (struct x_output));