comparison src/alloc.c @ 51578:42f25a716cb8

(mark_kboards): Move to keyboard.c.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 15 Jun 2003 21:48:14 +0000
parents 0b5248964d32
children 00b3e009b3f5
comparison
equal deleted inserted replaced
51577:f624d43a48fb 51578:42f25a716cb8
247 247
248 Lisp_Object Vgc_elapsed; /* accumulated elapsed time in GC */ 248 Lisp_Object Vgc_elapsed; /* accumulated elapsed time in GC */
249 EMACS_INT gcs_done; /* accumulated GCs */ 249 EMACS_INT gcs_done; /* accumulated GCs */
250 250
251 static void mark_buffer P_ ((Lisp_Object)); 251 static void mark_buffer P_ ((Lisp_Object));
252 static void mark_kboards P_ ((void)); 252 extern void mark_kboards P_ ((void));
253 static void gc_sweep P_ ((void)); 253 static void gc_sweep P_ ((void));
254 static void mark_glyph_matrix P_ ((struct glyph_matrix *)); 254 static void mark_glyph_matrix P_ ((struct glyph_matrix *));
255 static void mark_face_cache P_ ((struct face_cache *)); 255 static void mark_face_cache P_ ((struct face_cache *));
256 256
257 #ifdef HAVE_WINDOW_SYSTEM 257 #ifdef HAVE_WINDOW_SYSTEM
4958 /* If this is an indirect buffer, mark its base buffer. */ 4958 /* If this is an indirect buffer, mark its base buffer. */
4959 if (buffer->base_buffer && !XMARKBIT (buffer->base_buffer->name)) 4959 if (buffer->base_buffer && !XMARKBIT (buffer->base_buffer->name))
4960 { 4960 {
4961 XSETBUFFER (base_buffer, buffer->base_buffer); 4961 XSETBUFFER (base_buffer, buffer->base_buffer);
4962 mark_buffer (base_buffer); 4962 mark_buffer (base_buffer);
4963 }
4964 }
4965
4966
4967 /* Mark the pointers in the kboard objects. */
4968
4969 static void
4970 mark_kboards ()
4971 {
4972 KBOARD *kb;
4973 Lisp_Object *p;
4974 for (kb = all_kboards; kb; kb = kb->next_kboard)
4975 {
4976 if (kb->kbd_macro_buffer)
4977 for (p = kb->kbd_macro_buffer; p < kb->kbd_macro_ptr; p++)
4978 mark_object (p);
4979 mark_object (&kb->Voverriding_terminal_local_map);
4980 mark_object (&kb->Vlast_command);
4981 mark_object (&kb->Vreal_last_command);
4982 mark_object (&kb->Vprefix_arg);
4983 mark_object (&kb->Vlast_prefix_arg);
4984 mark_object (&kb->kbd_queue);
4985 mark_object (&kb->defining_kbd_macro);
4986 mark_object (&kb->Vlast_kbd_macro);
4987 mark_object (&kb->Vsystem_key_alist);
4988 mark_object (&kb->system_key_syms);
4989 mark_object (&kb->Vdefault_minibuffer_frame);
4990 mark_object (&kb->echo_string);
4991 } 4963 }
4992 } 4964 }
4993 4965
4994 4966
4995 /* Value is non-zero if OBJ will survive the current GC because it's 4967 /* Value is non-zero if OBJ will survive the current GC because it's