]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fgarbage_collect): Do all the marking before flushing
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 18 May 2004 16:22:46 +0000 (16:22 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 18 May 2004 16:22:46 +0000 (16:22 +0000)
unmarked elements of the undo list.

src/alloc.c

index c38376d80bce3bbb5c62971cc985621c10dbb188..3dc21ca30e015cd67b65f93a3dc5fee3b7f0fff1 100644 (file)
@@ -4465,6 +4465,17 @@ returns nil, because real GC can't be done.  */)
     }
   mark_kboards ();
 
+#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
+  mark_stack ();
+#endif
+
+#ifdef USE_GTK
+  {
+    extern void xg_mark_data ();
+    xg_mark_data ();
+  }
+#endif
+
   /* Look thru every buffer's undo list
      for elements that update markers that were not marked,
      and delete them.  */
@@ -4508,17 +4519,6 @@ returns nil, because real GC can't be done.  */)
       }
   }
 
-#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
-  mark_stack ();
-#endif
-
-#ifdef USE_GTK
-  {
-    extern void xg_mark_data ();
-    xg_mark_data ();
-  }
-#endif
-
   gc_sweep ();
 
   /* Clear the mark bits that we set in certain root slots.  */