# HG changeset patch # User Karl Heuer # Date 791853814 0 # Node ID 52cdd8cc8d3e7d14c5831411b25cd8cf366d8047 # Parent 0871d1c3cb26fd7785b06f94aa082cf9773084ba (mark_perdisplays): New function. (Fgarbage_collect): Call it. diff -r 0871d1c3cb26 -r 52cdd8cc8d3e src/alloc.c --- a/src/alloc.c Fri Feb 03 22:21:07 1995 +0000 +++ b/src/alloc.c Fri Feb 03 23:23:34 1995 +0000 @@ -130,7 +130,7 @@ /* Non-zero means ignore malloc warnings. Set during initialization. */ int ignore_warnings; -static void mark_object (), mark_buffer (); +static void mark_object (), mark_buffer (), mark_perdisplays (); static void clear_marks (), gc_sweep (); static void compact_strings (); @@ -1358,6 +1358,7 @@ XMARK (backlist->args[i]); } } + mark_perdisplays (); gc_sweep (); @@ -1777,6 +1778,21 @@ mark_buffer (base_buffer); } } + + +/* Mark the pointers in the perdisplay objects. */ + +static void +mark_perdisplays () +{ + PERDISPLAY *perd; + for (perd = all_perdisplays; perd; perd = perd->next_perdisplay) + { + mark_object (&perd->Vprefix_arg); + mark_object (&perd->Vcurrent_prefix_arg); + mark_object (&perd->kbd_buffer_frame_or_window); + } +} /* Sweep: find all structures not marked, and free them. */