diff src/extents.c @ 3263:d674024a8674

[xemacs-hg @ 2006-02-27 16:29:00 by crestani] - Introduce a fancy asynchronous finalization strategy on C level. - Merge the code conditioned on MC_ALLOC into the code conditioned on NEW_GC. - Remove the possibility to free objects manually outside garbage collections when the new collector is enabled.
author crestani
date Mon, 27 Feb 2006 16:29:29 +0000
parents 2b8bb4938bb4
children 4d52aea479a2
line wrap: on
line diff
--- a/src/extents.c	Sun Feb 26 22:51:04 2006 +0000
+++ b/src/extents.c	Mon Feb 27 16:29:29 2006 +0000
@@ -1269,6 +1269,14 @@
   return Qnil;
 }
 
+#ifdef NEW_GC
+DEFINE_LRECORD_IMPLEMENTATION ("extent-info", extent_info,
+			       0, /*dumpable-flag*/
+                               mark_extent_info, internal_object_printer,
+			       0, 0, 0, 
+			       extent_info_description,
+			       struct extent_info);
+#else /* not NEW_GC */
 static void
 finalize_extent_info (void *header, int for_disksave)
 {
@@ -1277,10 +1285,8 @@
   if (for_disksave)
     return;
 
-#ifdef NEW_GC
   data->soe = 0;
   data->extents = 0;
-#else /* not NEW_GC */
   if (data->soe)
     {
       free_soe (data->soe);
@@ -1291,7 +1297,6 @@
       free_extent_list (data->extents);
       data->extents = 0;
     }
-#endif /* not NEW_GC */
 }
 
 DEFINE_LRECORD_IMPLEMENTATION ("extent-info", extent_info,
@@ -1300,6 +1305,7 @@
 			       finalize_extent_info, 0, 0, 
 			       extent_info_description,
 			       struct extent_info);
+#endif /* not NEW_GC */
 
 static Lisp_Object
 allocate_extent_info (void)
@@ -7458,7 +7464,7 @@
   INIT_LRECORD_IMPLEMENTATION (extent_list_marker);
   INIT_LRECORD_IMPLEMENTATION (extent_list);
   INIT_LRECORD_IMPLEMENTATION (stack_of_extents);
-#endif /* not NEW_GC */
+#endif /* NEW_GC */
 
   DEFSYMBOL (Qextentp);
   DEFSYMBOL (Qextent_live_p);