aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorKaroly Lorentey2004-06-28 16:04:52 +0000
committerKaroly Lorentey2004-06-28 16:04:52 +0000
commit69deab57ea8ab5e3bc1cfb80027341aa0451362b (patch)
tree5f0b6c225cc787351c96fc35beeed6746f59d3af /src/alloc.c
parent3fa701994755105d1fb4b0b802338fc04e8a6937 (diff)
parentef544dc88794ccfd1237f56e3e490f705bf1d025 (diff)
downloademacs-69deab57ea8ab5e3bc1cfb80027341aa0451362b.tar.gz
emacs-69deab57ea8ab5e3bc1cfb80027341aa0451362b.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-420 Tweak permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-421 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-422 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-423 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-424 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-425 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-426 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-203
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/alloc.c b/src/alloc.c
index baf7afa0094..5dc8d186369 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -591,6 +591,7 @@ safe_alloca_unwind (arg)
591 p->dogc = 0; 591 p->dogc = 0;
592 xfree (p->pointer); 592 xfree (p->pointer);
593 p->pointer = 0; 593 p->pointer = 0;
594 free_misc (arg);
594 return Qnil; 595 return Qnil;
595} 596}
596 597
@@ -2922,17 +2923,32 @@ allocate_misc ()
2922 marker_block = new; 2923 marker_block = new;
2923 marker_block_index = 0; 2924 marker_block_index = 0;
2924 n_marker_blocks++; 2925 n_marker_blocks++;
2926 total_free_markers += MARKER_BLOCK_SIZE;
2925 } 2927 }
2926 XSETMISC (val, &marker_block->markers[marker_block_index]); 2928 XSETMISC (val, &marker_block->markers[marker_block_index]);
2927 marker_block_index++; 2929 marker_block_index++;
2928 } 2930 }
2929 2931
2932 --total_free_markers;
2930 consing_since_gc += sizeof (union Lisp_Misc); 2933 consing_since_gc += sizeof (union Lisp_Misc);
2931 misc_objects_consed++; 2934 misc_objects_consed++;
2932 XMARKER (val)->gcmarkbit = 0; 2935 XMARKER (val)->gcmarkbit = 0;
2933 return val; 2936 return val;
2934} 2937}
2935 2938
2939/* Free a Lisp_Misc object */
2940
2941void
2942free_misc (misc)
2943 Lisp_Object misc;
2944{
2945 XMISC (misc)->u_marker.type = Lisp_Misc_Free;
2946 XMISC (misc)->u_free.chain = marker_free_list;
2947 marker_free_list = XMISC (misc);
2948
2949 total_free_markers++;
2950}
2951
2936/* Return a Lisp_Misc_Save_Value object containing POINTER and 2952/* Return a Lisp_Misc_Save_Value object containing POINTER and
2937 INTEGER. This is used to package C values to call record_unwind_protect. 2953 INTEGER. This is used to package C values to call record_unwind_protect.
2938 The unwind function can get the C values back using XSAVE_VALUE. */ 2954 The unwind function can get the C values back using XSAVE_VALUE. */
@@ -2979,12 +2995,7 @@ free_marker (marker)
2979 Lisp_Object marker; 2995 Lisp_Object marker;
2980{ 2996{
2981 unchain_marker (XMARKER (marker)); 2997 unchain_marker (XMARKER (marker));
2982 2998 free_misc (marker);
2983 XMISC (marker)->u_marker.type = Lisp_Misc_Free;
2984 XMISC (marker)->u_free.chain = marker_free_list;
2985 marker_free_list = XMISC (marker);
2986
2987 total_free_markers++;
2988} 2999}
2989 3000
2990 3001