diff options
| author | Karoly Lorentey | 2004-06-28 16:04:52 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-06-28 16:04:52 +0000 |
| commit | 69deab57ea8ab5e3bc1cfb80027341aa0451362b (patch) | |
| tree | 5f0b6c225cc787351c96fc35beeed6746f59d3af /src/alloc.c | |
| parent | 3fa701994755105d1fb4b0b802338fc04e8a6937 (diff) | |
| parent | ef544dc88794ccfd1237f56e3e490f705bf1d025 (diff) | |
| download | emacs-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.c | 23 |
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 | |||
| 2941 | void | ||
| 2942 | free_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 | ||