diff options
| author | Karoly Lorentey | 2004-05-18 19:12:15 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-05-18 19:12:15 +0000 |
| commit | c23670f81e059ebe645c88575f4ddfa67f26bf6b (patch) | |
| tree | 71667a6ceaa877ccf3953abedfa7b0fd5f0f5369 /src/alloc.c | |
| parent | d9858e4f1889a61b216ae1f99053846362067ccc (diff) | |
| parent | a7f7f2540f02834ad128d0c9357a4dbd8222dff4 (diff) | |
| download | emacs-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.c | 32 |
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; |