diff src/elhash.c @ 1598:ac1be85b4a5f

[xemacs-hg @ 2003-07-31 13:32:24 by crestani] 2003-07-29 Marcus Crestani <crestani@informatik.uni-tuebingen.de> Markus Kaltenbach <makalten@informatik.uni-tuebingen.de> * README.kkcc: Aligned to the changes. * alloc.c: Implemented the kkcc_gc_stack. (kkcc_gc_stack_init): (kkcc_gc_stack_free): (kkcc_gc_stack_realloc): (kkcc_gc_stack_full): (kkcc_gc_stack_empty): (kkcc_gc_stack_push): (kkcc_gc_stack_pop): (kkcc_gc_stack_push_lisp_object): (mark_object_maybe_checking_free): Push objects on kkcc stack instead of marking. (mark_struct_contents): Push objects on kkcc stack instead of marking. (kkcc_marking): KKCC mark algorithm using the kkcc_gc_stack. (mark_object): Removed KKCC ifdefs. (garbage_collect_1): Push objects on kkcc stack instead of marking. * data.c: Added XD_FLAG_NO_KKCC to ephemeron_description and to weak_list_description. * data.c (finish_marking_weak_lists): Push objects on kkcc stack instead of marking. (continue_marking_ephemerons): Push objects on kkcc stack instead of marking. (finish_marking_ephemerons): Push objects on kkcc stack instead of marking. * elhash.c (finish_marking_weak_hash_tables): Push objects on kkcc stack instead of marking. * eval.c: Added XD_FLAG_NO_KKCC to subr_description. * lisp.h: Added prototype for kkcc_gc_stack_push_lisp_object. * profile.c (mark_profiling_info_maphash): Push keys on kkcc stack instead of marking.
author crestani
date Thu, 31 Jul 2003 13:32:26 +0000
parents f3437b56874d
children a8d8f419b459
line wrap: on
line diff
--- a/src/elhash.c	Wed Jul 30 21:52:22 2003 +0000
+++ b/src/elhash.c	Thu Jul 31 13:32:26 2003 +0000
@@ -1429,6 +1429,18 @@
 /************************************************************************/
 /*		   garbage collecting weak hash tables			*/
 /************************************************************************/
+#ifdef USE_KKCC
+#define MARK_OBJ(obj) do {		       \
+  Lisp_Object mo_obj = (obj);		       \
+  if (!marked_p (mo_obj))		       \
+    {					       \
+      kkcc_gc_stack_push_lisp_object (mo_obj); \
+      did_mark = 1;			       \
+    }					       \
+} while (0)
+
+#else /* NO USE_KKCC */
+
 #define MARK_OBJ(obj) do {		\
   Lisp_Object mo_obj = (obj);		\
   if (!marked_p (mo_obj))		\
@@ -1437,6 +1449,7 @@
       did_mark = 1;			\
     }					\
 } while (0)
+#endif /*NO USE_KKCC */
 
 
 /* Complete the marking for semi-weak hash tables. */