Mercurial > hg > xemacs-beta
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);