comparison src/frame.c @ 3092:141c2920ea48

[xemacs-hg @ 2005-11-25 01:41:31 by crestani] Incremental Garbage Collector
author crestani
date Fri, 25 Nov 2005 01:42:08 +0000
parents facf3239ba30
children 91950589598c
comparison
equal deleted inserted replaced
3091:c22d8984148c 3092:141c2920ea48
137 the dynamic allocation time adds up. */ 137 the dynamic allocation time adds up. */
138 static Ichar_dynarr *title_string_ichar_dynarr; 138 static Ichar_dynarr *title_string_ichar_dynarr;
139 139
140 140
141 141
142 #ifndef NEW_GC
142 extern const struct sized_memory_description gtk_frame_data_description; 143 extern const struct sized_memory_description gtk_frame_data_description;
143 extern const struct sized_memory_description mswindows_frame_data_description; 144 extern const struct sized_memory_description mswindows_frame_data_description;
144 extern const struct sized_memory_description x_frame_data_description; 145 extern const struct sized_memory_description x_frame_data_description;
146 #endif /* not NEW_GC */
145 147
146 static const struct memory_description frame_data_description_1 []= { 148 static const struct memory_description frame_data_description_1 []= {
149 #ifdef NEW_GC
150 #ifdef HAVE_GTK
151 { XD_LISP_OBJECT, gtk_console },
152 #endif
153 #ifdef HAVE_MS_WINDOWS
154 { XD_LISP_OBJECT, mswindows_console },
155 #endif
156 #ifdef HAVE_X_WINDOWS
157 { XD_LISP_OBJECT, x_console },
158 #endif
159 #else /* not NEW_GC */
147 #ifdef HAVE_GTK 160 #ifdef HAVE_GTK
148 { XD_BLOCK_PTR, gtk_console, 1, { &gtk_frame_data_description} }, 161 { XD_BLOCK_PTR, gtk_console, 1, { &gtk_frame_data_description} },
149 #endif 162 #endif
150 #ifdef HAVE_MS_WINDOWS 163 #ifdef HAVE_MS_WINDOWS
151 { XD_BLOCK_PTR, mswindows_console, 1, { &mswindows_frame_data_description} }, 164 { XD_BLOCK_PTR, mswindows_console, 1, { &mswindows_frame_data_description} },
152 #endif 165 #endif
153 #ifdef HAVE_X_WINDOWS 166 #ifdef HAVE_X_WINDOWS
154 { XD_BLOCK_PTR, x_console, 1, { &x_frame_data_description} }, 167 { XD_BLOCK_PTR, x_console, 1, { &x_frame_data_description} },
155 #endif 168 #endif
169 #endif /* not NEW_GC */
156 { XD_END } 170 { XD_END }
157 }; 171 };
158 172
159 static const struct sized_memory_description frame_data_description = { 173 static const struct sized_memory_description frame_data_description = {
160 sizeof (void *), frame_data_description_1 174 sizeof (void *), frame_data_description_1
161 }; 175 };
162 176
177 #ifdef NEW_GC
178 static const struct memory_description expose_ignore_description_1 [] = {
179 { XD_LISP_OBJECT, offsetof (struct expose_ignore, next) },
180 { XD_END }
181 };
182
183 DEFINE_LRECORD_IMPLEMENTATION ("expose-ignore",
184 expose_ignore,
185 1, /*dumpable-flag*/
186 0, 0, 0, 0, 0,
187 expose_ignore_description_1,
188 struct expose_ignore);
189 #else /* not NEW_GC */
163 extern const struct sized_memory_description expose_ignore_description; 190 extern const struct sized_memory_description expose_ignore_description;
164 191
165 static const struct memory_description expose_ignore_description_1 [] = { 192 static const struct memory_description expose_ignore_description_1 [] = {
166 { XD_BLOCK_PTR, offsetof (struct expose_ignore, next), 193 { XD_BLOCK_PTR, offsetof (struct expose_ignore, next),
167 1, { &expose_ignore_description } }, 194 1, { &expose_ignore_description } },
170 197
171 const struct sized_memory_description expose_ignore_description = { 198 const struct sized_memory_description expose_ignore_description = {
172 sizeof (struct expose_ignore), 199 sizeof (struct expose_ignore),
173 expose_ignore_description_1 200 expose_ignore_description_1
174 }; 201 };
202 #endif /* not NEW_GC */
175 203
176 static const struct memory_description display_line_dynarr_pointer_description_1 []= { 204 static const struct memory_description display_line_dynarr_pointer_description_1 []= {
177 { XD_BLOCK_PTR, 0, 1, { &display_line_dynarr_description} }, 205 { XD_BLOCK_PTR, 0, 1, { &display_line_dynarr_description} },
178 { XD_END } 206 { XD_END }
179 }; 207 };
187 #define MARKED_SLOT(x) { XD_LISP_OBJECT, offsetof (struct frame, x) }, 215 #define MARKED_SLOT(x) { XD_LISP_OBJECT, offsetof (struct frame, x) },
188 #define MARKED_SLOT_ARRAY(slot, size) \ 216 #define MARKED_SLOT_ARRAY(slot, size) \
189 { XD_LISP_OBJECT_ARRAY, offsetof (struct frame, slot), size }, 217 { XD_LISP_OBJECT_ARRAY, offsetof (struct frame, slot), size },
190 #include "frameslots.h" 218 #include "frameslots.h"
191 219
220 #ifdef NEW_GC
221 { XD_LISP_OBJECT, offsetof (struct frame, subwindow_exposures) },
222 { XD_LISP_OBJECT, offsetof (struct frame, subwindow_exposures_tail) },
223 #else /* not NEW_GC */
192 { XD_BLOCK_PTR, offsetof (struct frame, subwindow_exposures), 224 { XD_BLOCK_PTR, offsetof (struct frame, subwindow_exposures),
193 1, { &expose_ignore_description } }, 225 1, { &expose_ignore_description } },
194 { XD_BLOCK_PTR, offsetof (struct frame, subwindow_exposures_tail), 226 { XD_BLOCK_PTR, offsetof (struct frame, subwindow_exposures_tail),
195 1, { &expose_ignore_description } }, 227 1, { &expose_ignore_description } },
228 #endif /* not NEW_GC */
196 229
197 #ifdef HAVE_SCROLLBARS 230 #ifdef HAVE_SCROLLBARS
198 { XD_LISP_OBJECT, offsetof (struct frame, sb_vcache) }, 231 { XD_LISP_OBJECT, offsetof (struct frame, sb_vcache) },
199 { XD_LISP_OBJECT, offsetof (struct frame, sb_hcache) }, 232 { XD_LISP_OBJECT, offsetof (struct frame, sb_hcache) },
200 #endif /* HAVE_SCROLLBARS */ 233 #endif /* HAVE_SCROLLBARS */
3404 fact. f->size_change_pending will get reset below. The most that 3437 fact. f->size_change_pending will get reset below. The most that
3405 can happen is that we will cycle through redisplay once more 3438 can happen is that we will cycle through redisplay once more
3406 --andy. */ 3439 --andy. */
3407 MARK_FRAME_SIZE_CHANGED (f); 3440 MARK_FRAME_SIZE_CHANGED (f);
3408 3441
3442 #ifdef NEW_GC
3443 if (delay || hold_frame_size_changes)
3444 #else /* not NEW_GC */
3409 if (delay || hold_frame_size_changes || gc_in_progress) 3445 if (delay || hold_frame_size_changes || gc_in_progress)
3446 #endif /* not NEW_GC */
3410 { 3447 {
3411 f->new_width = newwidth; 3448 f->new_width = newwidth;
3412 f->new_height = newheight; 3449 f->new_height = newheight;
3413 return; 3450 return;
3414 } 3451 }
3574 3611
3575 void 3612 void
3576 syms_of_frame (void) 3613 syms_of_frame (void)
3577 { 3614 {
3578 INIT_LRECORD_IMPLEMENTATION (frame); 3615 INIT_LRECORD_IMPLEMENTATION (frame);
3616 #ifdef NEW_GC
3617 INIT_LRECORD_IMPLEMENTATION (expose_ignore);
3618 #endif /* NEW_GC */
3579 3619
3580 DEFSYMBOL (Qdelete_frame_hook); 3620 DEFSYMBOL (Qdelete_frame_hook);
3581 DEFSYMBOL (Qselect_frame_hook); 3621 DEFSYMBOL (Qselect_frame_hook);
3582 DEFSYMBOL (Qdeselect_frame_hook); 3622 DEFSYMBOL (Qdeselect_frame_hook);
3583 DEFSYMBOL (Qcreate_frame_hook); 3623 DEFSYMBOL (Qcreate_frame_hook);