aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorKaroly Lorentey2004-05-18 19:12:15 +0000
committerKaroly Lorentey2004-05-18 19:12:15 +0000
commitc23670f81e059ebe645c88575f4ddfa67f26bf6b (patch)
tree71667a6ceaa877ccf3953abedfa7b0fd5f0f5369 /src/alloc.c
parentd9858e4f1889a61b216ae1f99053846362067ccc (diff)
parenta7f7f2540f02834ad128d0c9357a4dbd8222dff4 (diff)
downloademacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.tar.gz
emacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-301 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-302 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-303 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-304 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-305 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-306 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-307 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-308 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-309 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-310 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-311 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-312 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-313 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-314 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-315 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-316 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-317 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-318 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-319 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-320 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-321 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-322 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-323 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-324 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-163
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 29351952860..63447d078f9 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -845,7 +845,7 @@ lisp_align_free (block)
845 free_ablock = ablock; 845 free_ablock = ablock;
846 /* Update busy count. */ 846 /* Update busy count. */
847 ABLOCKS_BUSY (abase) = (struct ablocks *) (-2 + (long) ABLOCKS_BUSY (abase)); 847 ABLOCKS_BUSY (abase) = (struct ablocks *) (-2 + (long) ABLOCKS_BUSY (abase));
848 848
849 if (2 > (long) ABLOCKS_BUSY (abase)) 849 if (2 > (long) ABLOCKS_BUSY (abase))
850 { /* All the blocks are free. */ 850 { /* All the blocks are free. */
851 int i = 0, aligned = (long) ABLOCKS_BUSY (abase); 851 int i = 0, aligned = (long) ABLOCKS_BUSY (abase);
@@ -4467,6 +4467,17 @@ returns nil, because real GC can't be done. */)
4467 mark_kboards (); 4467 mark_kboards ();
4468 mark_ttys (); 4468 mark_ttys ();
4469 4469
4470#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
4471 mark_stack ();
4472#endif
4473
4474#ifdef USE_GTK
4475 {
4476 extern void xg_mark_data ();
4477 xg_mark_data ();
4478 }
4479#endif
4480
4470 /* Look thru every buffer's undo list 4481 /* Look thru every buffer's undo list
4471 for elements that update markers that were not marked, 4482 for elements that update markers that were not marked,
4472 and delete them. */ 4483 and delete them. */
@@ -4510,17 +4521,6 @@ returns nil, because real GC can't be done. */)
4510 } 4521 }
4511 } 4522 }
4512 4523
4513#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
4514 mark_stack ();
4515#endif
4516
4517#ifdef USE_GTK
4518 {
4519 extern void xg_mark_data ();
4520 xg_mark_data ();
4521 }
4522#endif
4523
4524 gc_sweep (); 4524 gc_sweep ();
4525 4525
4526 /* Clear the mark bits that we set in certain root slots. */ 4526 /* Clear the mark bits that we set in certain root slots. */
@@ -4978,6 +4978,14 @@ mark_object (arg)
4978 break; 4978 break;
4979 4979
4980 case Lisp_Misc: 4980 case Lisp_Misc:
4981 if (XMISCTYPE (obj) == Lisp_Misc_Free)
4982 {
4983 /* This is (probably) a freed marker which may still exist on
4984 a buffer undo list, so accept it here, as check below will
4985 fail (not live). KFS 2004-05-17 */
4986 XMARKER (obj)->gcmarkbit = 1;
4987 break;
4988 }
4981 CHECK_ALLOCATED_AND_LIVE (live_misc_p); 4989 CHECK_ALLOCATED_AND_LIVE (live_misc_p);
4982 if (XMARKER (obj)->gcmarkbit) 4990 if (XMARKER (obj)->gcmarkbit)
4983 break; 4991 break;