mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-06 11:50:51 -08:00
(mark_perdisplays): New function.
(Fgarbage_collect): Call it.
This commit is contained in:
parent
a2d3b8ba7c
commit
084b1a0c7d
1 changed files with 17 additions and 1 deletions
18
src/alloc.c
18
src/alloc.c
|
|
@ -130,7 +130,7 @@ int stack_copy_size;
|
|||
/* 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 @@ Garbage collection happens automatically if you cons more than\n\
|
|||
XMARK (backlist->args[i]);
|
||||
}
|
||||
}
|
||||
mark_perdisplays ();
|
||||
|
||||
gc_sweep ();
|
||||
|
||||
|
|
@ -1777,6 +1778,21 @@ mark_buffer (buf)
|
|||
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. */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue