comparison src/alloc.c @ 1773:aa0db78e67c4

[xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach] Bugfix in USE_KKCC mode processing weak data structures 2003-11-01 Markus Kaltenbach <makalten@informatik.uni-tuebingen.de> * src/alloc.c (garbage_collect_1):fix bug * automated/weak-tests.el:added test to track it down
author kaltenbach
date Sat, 01 Nov 2003 14:55:00 +0000
parents 9ddedfc70c4a
children 59e1bbea04fe
comparison
equal deleted inserted replaced
1772:c6b9198bfc23 1773:aa0db78e67c4
4611 #endif /* USE_KKCC */ 4611 #endif /* USE_KKCC */
4612 init_marking_ephemerons (); 4612 init_marking_ephemerons ();
4613 while (finish_marking_weak_hash_tables () > 0 || 4613 while (finish_marking_weak_hash_tables () > 0 ||
4614 finish_marking_weak_lists () > 0 || 4614 finish_marking_weak_lists () > 0 ||
4615 continue_marking_ephemerons () > 0) 4615 continue_marking_ephemerons () > 0)
4616 #ifdef USE_KKCC
4617 {
4618 kkcc_marking ();
4619 }
4620 #else /* NOT USE_KKCC */
4616 ; 4621 ;
4617
4618 #ifdef USE_KKCC
4619 kkcc_marking ();
4620 #endif /* USE_KKCC */ 4622 #endif /* USE_KKCC */
4621 4623
4622 /* At this point, we know which objects need to be finalized: we 4624 /* At this point, we know which objects need to be finalized: we
4623 still need to resurrect them */ 4625 still need to resurrect them */
4624 4626
4625 while (finish_marking_ephemerons () > 0 || 4627 while (finish_marking_ephemerons () > 0 ||
4626 finish_marking_weak_lists () > 0 || 4628 finish_marking_weak_lists () > 0 ||
4627 finish_marking_weak_hash_tables () > 0) 4629 finish_marking_weak_hash_tables () > 0)
4628 ;
4629
4630 #ifdef USE_KKCC 4630 #ifdef USE_KKCC
4631 kkcc_marking (); 4631 {
4632 kkcc_marking ();
4633 }
4632 kkcc_gc_stack_free (); 4634 kkcc_gc_stack_free ();
4633 #undef mark_object 4635 #undef mark_object
4636 #else /* NOT USE_KKCC */
4637 ;
4634 #endif /* USE_KKCC */ 4638 #endif /* USE_KKCC */
4635 4639
4636 /* And prune (this needs to be called after everything else has been 4640 /* And prune (this needs to be called after everything else has been
4637 marked and before we do any sweeping). */ 4641 marked and before we do any sweeping). */
4638 /* #### this is somewhat ad-hoc and should probably be an object 4642 /* #### this is somewhat ad-hoc and should probably be an object