Mercurial > emacs
changeset 64611:47f158dcf216
(gc_cons_threshold): Not static.
(gc_cons_combined_threshold): Var deleted.
(gc_relative_threshold): New variable.
(Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold
instead of gc_cons_combined_threshold.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 23 Jul 2005 19:08:06 +0000 |
parents | 06bf5258607d |
children | 6926a2764ae6 |
files | src/alloc.c |
diffstat | 1 files changed, 14 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/alloc.c Sat Jul 23 10:22:44 2005 +0000 +++ b/src/alloc.c Sat Jul 23 19:08:06 2005 +0000 @@ -172,10 +172,14 @@ EMACS_INT intervals_consed; EMACS_INT strings_consed; -/* Number of bytes of consing since GC before another GC should be done. */ - -static EMACS_INT gc_cons_threshold; -EMACS_INT gc_cons_combined_threshold; +/* Minimum number of bytes of consing since GC before next GC. */ + +EMACS_INT gc_cons_threshold; + +/* Similar minimum, computed from Vgc_cons_percentage. */ + +EMACS_INT gc_relative_threshold; + static Lisp_Object Vgc_cons_percentage; /* Nonzero during GC. */ @@ -4899,12 +4903,10 @@ if (gc_cons_threshold < 10000) gc_cons_threshold = 10000; - gc_cons_combined_threshold = gc_cons_threshold; - if (FLOATP (Vgc_cons_percentage)) { /* Set gc_cons_combined_threshold. */ EMACS_INT total = 0; - EMACS_INT threshold; + total += total_conses * sizeof (struct Lisp_Cons); total += total_symbols * sizeof (struct Lisp_Symbol); total += total_markers * sizeof (union Lisp_Misc); @@ -4914,10 +4916,10 @@ total += total_intervals * sizeof (struct interval); total += total_strings * sizeof (struct Lisp_String); - threshold = total * XFLOAT_DATA (Vgc_cons_percentage); - if (threshold > gc_cons_combined_threshold) - gc_cons_combined_threshold = threshold; + gc_relative_threshold = total * XFLOAT_DATA (Vgc_cons_percentage); } + else + gc_relative_threshold = 0; if (garbage_collection_messages) { @@ -6008,7 +6010,8 @@ staticidx = 0; consing_since_gc = 0; gc_cons_threshold = 100000 * sizeof (Lisp_Object); - gc_cons_combined_threshold = gc_cons_threshold; + gc_relative_threshold = 0; + #ifdef VIRT_ADDR_VARIES malloc_sbrk_unused = 1<<22; /* A large number */ malloc_sbrk_used = 100000; /* as reasonable as any number */