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 |
