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