aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xfns.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/xfns.c b/src/xfns.c
index 8896fc46373..849dc8d1aa4 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3011,7 +3011,7 @@ This function is an internal primitive--use `make-frame' instead.")
3011 long window_prompting = 0; 3011 long window_prompting = 0;
3012 int width, height; 3012 int width, height;
3013 int count = specpdl_ptr - specpdl; 3013 int count = specpdl_ptr - specpdl;
3014 struct gcpro gcpro1; 3014 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
3015 Lisp_Object display; 3015 Lisp_Object display;
3016 struct x_display_info *dpyinfo; 3016 struct x_display_info *dpyinfo;
3017 Lisp_Object parent; 3017 Lisp_Object parent;
@@ -3049,6 +3049,11 @@ This function is an internal primitive--use `make-frame' instead.")
3049 if (! NILP (parent)) 3049 if (! NILP (parent))
3050 CHECK_NUMBER (parent, 0); 3050 CHECK_NUMBER (parent, 0);
3051 3051
3052 /* make_frame_without_minibuffer can run Lisp code and garbage collect. */
3053 /* No need to protect DISPLAY because that's not used after passing
3054 it to make_frame_without_minibuffer. */
3055 frame = Qnil;
3056 GCPRO4 (parms, parent, name, frame);
3052 tem = x_get_arg (parms, Qminibuffer, 0, 0, symbol); 3057 tem = x_get_arg (parms, Qminibuffer, 0, 0, symbol);
3053 if (EQ (tem, Qnone) || NILP (tem)) 3058 if (EQ (tem, Qnone) || NILP (tem))
3054 f = make_frame_without_minibuffer (Qnil, kb, display); 3059 f = make_frame_without_minibuffer (Qnil, kb, display);
@@ -3062,12 +3067,11 @@ This function is an internal primitive--use `make-frame' instead.")
3062 else 3067 else
3063 f = make_frame (1); 3068 f = make_frame (1);
3064 3069
3070 XSETFRAME (frame, f);
3071
3065 /* Note that X Windows does support scroll bars. */ 3072 /* Note that X Windows does support scroll bars. */
3066 FRAME_CAN_HAVE_SCROLL_BARS (f) = 1; 3073 FRAME_CAN_HAVE_SCROLL_BARS (f) = 1;
3067 3074
3068 XSETFRAME (frame, f);
3069 GCPRO1 (frame);
3070
3071 f->output_method = output_x_window; 3075 f->output_method = output_x_window;
3072 f->output_data.x = (struct x_output *) xmalloc (sizeof (struct x_output)); 3076 f->output_data.x = (struct x_output *) xmalloc (sizeof (struct x_output));
3073 bzero (f->output_data.x, sizeof (struct x_output)); 3077 bzero (f->output_data.x, sizeof (struct x_output));