]> git.eshelyaron.com Git - emacs.git/commitdiff
(mark_perdisplays): New function.
authorKarl Heuer <kwzh@gnu.org>
Fri, 3 Feb 1995 23:23:34 +0000 (23:23 +0000)
committerKarl Heuer <kwzh@gnu.org>
Fri, 3 Feb 1995 23:23:34 +0000 (23:23 +0000)
(Fgarbage_collect): Call it.

src/alloc.c

index 1ed27b168f508ed14f66d6ee8b765e93e4638ad4..f36bf7e3e1e950ecaa072424d3d8fa9db643f97b 100644 (file)
@@ -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 ();
 \f
@@ -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);
+    }
+}
 \f
 /* Sweep: find all structures not marked, and free them. */