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