comparison src/alloc.c @ 34270:773e6aa2ec38

(Fgarbage_collect): Dox fix. Return a list as advertized by the function documentation.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 06 Dec 2000 14:22:15 +0000
parents 7f148cfbd1f7
children 6d490e8ef117
comparison
equal deleted inserted replaced
34269:a50ccd431a27 34270:773e6aa2ec38
3685 DEFUN ("garbage-collect", Fgarbage_collect, Sgarbage_collect, 0, 0, "", 3685 DEFUN ("garbage-collect", Fgarbage_collect, Sgarbage_collect, 0, 0, "",
3686 "Reclaim storage for Lisp objects no longer needed.\n\ 3686 "Reclaim storage for Lisp objects no longer needed.\n\
3687 Returns info on amount of space in use:\n\ 3687 Returns info on amount of space in use:\n\
3688 ((USED-CONSES . FREE-CONSES) (USED-SYMS . FREE-SYMS)\n\ 3688 ((USED-CONSES . FREE-CONSES) (USED-SYMS . FREE-SYMS)\n\
3689 (USED-MARKERS . FREE-MARKERS) USED-STRING-CHARS USED-VECTOR-SLOTS\n\ 3689 (USED-MARKERS . FREE-MARKERS) USED-STRING-CHARS USED-VECTOR-SLOTS\n\
3690 (USED-FLOATS . FREE-FLOATS) (USED-INTERVALS . FREE-INTERVALS\n\ 3690 (USED-FLOATS . FREE-FLOATS) (USED-INTERVALS . FREE-INTERVALS)\n\
3691 (USED-STRINGS . FREE-STRINGS))\n\ 3691 (USED-STRINGS . FREE-STRINGS))\n\
3692 Garbage collection happens automatically if you cons more than\n\ 3692 Garbage collection happens automatically if you cons more than\n\
3693 `gc-cons-threshold' bytes of Lisp data since previous garbage collection.") 3693 `gc-cons-threshold' bytes of Lisp data since previous garbage collection.")
3694 () 3694 ()
3695 { 3695 {
3699 struct handler *handler; 3699 struct handler *handler;
3700 register struct backtrace *backlist; 3700 register struct backtrace *backlist;
3701 char stack_top_variable; 3701 char stack_top_variable;
3702 register int i; 3702 register int i;
3703 int message_p; 3703 int message_p;
3704 Lisp_Object total[7]; 3704 Lisp_Object total[8];
3705 3705
3706 /* In case user calls debug_print during GC, 3706 /* In case user calls debug_print during GC,
3707 don't let that cause a recursive GC. */ 3707 don't let that cause a recursive GC. */
3708 consing_since_gc = 0; 3708 consing_since_gc = 0;
3709 3709
3919 make_number (total_free_conses)); 3919 make_number (total_free_conses));
3920 total[1] = Fcons (make_number (total_symbols), 3920 total[1] = Fcons (make_number (total_symbols),
3921 make_number (total_free_symbols)); 3921 make_number (total_free_symbols));
3922 total[2] = Fcons (make_number (total_markers), 3922 total[2] = Fcons (make_number (total_markers),
3923 make_number (total_free_markers)); 3923 make_number (total_free_markers));
3924 total[3] = Fcons (make_number (total_string_size), 3924 total[3] = make_number (total_string_size);
3925 make_number (total_vector_size)); 3925 total[4] = make_number (total_vector_size);
3926 total[4] = Fcons (make_number (total_floats), 3926 total[5] = Fcons (make_number (total_floats),
3927 make_number (total_free_floats)); 3927 make_number (total_free_floats));
3928 total[5] = Fcons (make_number (total_intervals), 3928 total[6] = Fcons (make_number (total_intervals),
3929 make_number (total_free_intervals)); 3929 make_number (total_free_intervals));
3930 total[6] = Fcons (make_number (total_strings), 3930 total[7] = Fcons (make_number (total_strings),
3931 make_number (total_free_strings)); 3931 make_number (total_free_strings));
3932 3932
3933 #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES 3933 #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
3934 { 3934 {
3935 /* Compute average percentage of zombies. */ 3935 /* Compute average percentage of zombies. */
3944 max_zombies = max (nzombies, max_zombies); 3944 max_zombies = max (nzombies, max_zombies);
3945 ++ngcs; 3945 ++ngcs;
3946 } 3946 }
3947 #endif 3947 #endif
3948 3948
3949 return Flist (7, total); 3949 return Flist (sizeof total / sizeof *total, total);
3950 } 3950 }
3951 3951
3952 3952
3953 /* Mark Lisp objects in glyph matrix MATRIX. Currently the 3953 /* Mark Lisp objects in glyph matrix MATRIX. Currently the
3954 only interesting objects referenced from glyphs are strings. */ 3954 only interesting objects referenced from glyphs are strings. */