diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-06-29 06:45:08 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-06-29 06:45:08 +0000 |
commit | ecaca5875ac0124921267ee81894f82fc40afec0 (patch) | |
tree | 7daa7ce2095afa5a812b1f2fc4dd8969031399a4 /src | |
parent | 8798879498aed59df771c7b45bff94a69f7c73e6 (diff) | |
download | emacs-ecaca5875ac0124921267ee81894f82fc40afec0.tar.gz |
(Fx_create_frame): Gcpro parms, parent, and name.
Diffstat (limited to 'src')
-rw-r--r-- | src/xfns.c | 12 |
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.") 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 @@ This function is an internal primitive--use `make-frame' instead.") 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 @@ This function is an internal primitive--use `make-frame' instead.") 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)); |