diff options
| author | Richard M. Stallman | 1996-06-29 06:45:08 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1996-06-29 06:45:08 +0000 |
| commit | ecaca5875ac0124921267ee81894f82fc40afec0 (patch) | |
| tree | 7daa7ce2095afa5a812b1f2fc4dd8969031399a4 | |
| parent | 8798879498aed59df771c7b45bff94a69f7c73e6 (diff) | |
| download | emacs-ecaca5875ac0124921267ee81894f82fc40afec0.tar.gz emacs-ecaca5875ac0124921267ee81894f82fc40afec0.zip | |
(Fx_create_frame): Gcpro parms, parent, and name.
| -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.") | |||
| 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)); |