comparison src/alloc.c @ 83284:360860a0006f

Merged from miles@gnu.org--gnu-2005 (patch 45-55, 214-231) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-214 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-215 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-216 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-217 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-218 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-219 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-221 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-222 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-223 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-224 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-225 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-226 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-227 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-228 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-229 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-230 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-231 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-45 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-46 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-47 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-48 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-49 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-50 Update from CVS: texi Makefile.in CVS keyw cruft * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-51 Update from CVS: ChangeLog tweaks * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-52 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-53 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-54 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-55 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-324
author Karoly Lorentey <lorentey@elte.hu>
date Mon, 04 Apr 2005 16:43:15 +0000
parents 2006100ee57e d24c6e8f9add
children ad07ff6e4555
comparison
equal deleted inserted replaced
83283:45e5f0224d81 83284:360860a0006f
1932 In case you think of allowing it in a dumped Emacs at the 1932 In case you think of allowing it in a dumped Emacs at the
1933 cost of not being able to re-dump, there's another reason: 1933 cost of not being able to re-dump, there's another reason:
1934 mmap'ed data typically have an address towards the top of the 1934 mmap'ed data typically have an address towards the top of the
1935 address space, which won't fit into an EMACS_INT (at least on 1935 address space, which won't fit into an EMACS_INT (at least on
1936 32-bit systems with the current tagging scheme). --fx */ 1936 32-bit systems with the current tagging scheme). --fx */
1937 BLOCK_INPUT;
1937 mallopt (M_MMAP_MAX, 0); 1938 mallopt (M_MMAP_MAX, 0);
1939 UNBLOCK_INPUT;
1938 #endif 1940 #endif
1939 1941
1940 b = (struct sblock *) lisp_malloc (size + GC_STRING_EXTRA, MEM_TYPE_NON_LISP); 1942 b = (struct sblock *) lisp_malloc (size + GC_STRING_EXTRA, MEM_TYPE_NON_LISP);
1941 1943
1942 #ifdef DOUG_LEA_MALLOC 1944 #ifdef DOUG_LEA_MALLOC
1943 /* Back to a reasonable maximum of mmap'ed areas. */ 1945 /* Back to a reasonable maximum of mmap'ed areas. */
1946 BLOCK_INPUT;
1944 mallopt (M_MMAP_MAX, MMAP_MAX_AREAS); 1947 mallopt (M_MMAP_MAX, MMAP_MAX_AREAS);
1948 UNBLOCK_INPUT;
1945 #endif 1949 #endif
1946 1950
1947 b->next_free = &b->first_data; 1951 b->next_free = &b->first_data;
1948 b->first_data.string = NULL; 1952 b->first_data.string = NULL;
1949 b->next = large_sblocks; 1953 b->next = large_sblocks;
4681 4685
4682 /* Can't GC if pure storage overflowed because we can't determine 4686 /* Can't GC if pure storage overflowed because we can't determine
4683 if something is a pure object or not. */ 4687 if something is a pure object or not. */
4684 if (pure_bytes_used_before_overflow) 4688 if (pure_bytes_used_before_overflow)
4685 return Qnil; 4689 return Qnil;
4690
4691 CHECK_CONS_LIST ();
4686 4692
4687 /* Don't keep undo information around forever. 4693 /* Don't keep undo information around forever.
4688 Do this early on, so it is no problem if the user quits. */ 4694 Do this early on, so it is no problem if the user quits. */
4689 { 4695 {
4690 register struct buffer *nextb = all_buffers; 4696 register struct buffer *nextb = all_buffers;
4875 #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES && 0 4881 #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES && 0
4876 dump_zombies (); 4882 dump_zombies ();
4877 #endif 4883 #endif
4878 4884
4879 UNBLOCK_INPUT; 4885 UNBLOCK_INPUT;
4886
4887 CHECK_CONS_LIST ();
4880 4888
4881 /* clear_marks (); */ 4889 /* clear_marks (); */
4882 gc_in_progress = 0; 4890 gc_in_progress = 0;
4883 4891
4884 consing_since_gc = 0; 4892 consing_since_gc = 0;