Mercurial > emacs
comparison src/alloc.c @ 55667:57f4a242e8f4
(Fgarbage_collect): Do all the marking before flushing
unmarked elements of the undo list.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 18 May 2004 16:22:46 +0000 |
parents | 333119854d83 |
children | 1a56baecf37d ad01ab3c6f4d |
comparison
equal
deleted
inserted
replaced
55666:c608b21fae26 | 55667:57f4a242e8f4 |
---|---|
4462 i = backlist->nargs - 1; | 4462 i = backlist->nargs - 1; |
4463 for (; i >= 0; i--) | 4463 for (; i >= 0; i--) |
4464 mark_object (backlist->args[i]); | 4464 mark_object (backlist->args[i]); |
4465 } | 4465 } |
4466 mark_kboards (); | 4466 mark_kboards (); |
4467 | |
4468 #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES | |
4469 mark_stack (); | |
4470 #endif | |
4471 | |
4472 #ifdef USE_GTK | |
4473 { | |
4474 extern void xg_mark_data (); | |
4475 xg_mark_data (); | |
4476 } | |
4477 #endif | |
4467 | 4478 |
4468 /* Look thru every buffer's undo list | 4479 /* Look thru every buffer's undo list |
4469 for elements that update markers that were not marked, | 4480 for elements that update markers that were not marked, |
4470 and delete them. */ | 4481 and delete them. */ |
4471 { | 4482 { |
4505 } | 4516 } |
4506 | 4517 |
4507 nextb = nextb->next; | 4518 nextb = nextb->next; |
4508 } | 4519 } |
4509 } | 4520 } |
4510 | |
4511 #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES | |
4512 mark_stack (); | |
4513 #endif | |
4514 | |
4515 #ifdef USE_GTK | |
4516 { | |
4517 extern void xg_mark_data (); | |
4518 xg_mark_data (); | |
4519 } | |
4520 #endif | |
4521 | 4521 |
4522 gc_sweep (); | 4522 gc_sweep (); |
4523 | 4523 |
4524 /* Clear the mark bits that we set in certain root slots. */ | 4524 /* Clear the mark bits that we set in certain root slots. */ |
4525 | 4525 |