Mercurial > emacs
comparison src/alloc.c @ 83163:8e4ea1e2c254
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
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 28 Jun 2004 16:04:52 +0000 |
parents | dbcd0af66869 a446552d2240 |
children | a79c4db19c4f |
comparison
equal
deleted
inserted
replaced
83162:dbcd0af66869 | 83163:8e4ea1e2c254 |
---|---|
589 register struct Lisp_Save_Value *p = XSAVE_VALUE (arg); | 589 register struct Lisp_Save_Value *p = XSAVE_VALUE (arg); |
590 | 590 |
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 |
597 | 598 |
598 /* Like malloc but used for allocating Lisp data. NBYTES is the | 599 /* Like malloc but used for allocating Lisp data. NBYTES is the |
2920 MEM_TYPE_MISC); | 2921 MEM_TYPE_MISC); |
2921 new->next = marker_block; | 2922 new->next = marker_block; |
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; |
2937 } | |
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++; | |
2934 } | 2950 } |
2935 | 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. */ |
2977 void | 2993 void |
2978 free_marker (marker) | 2994 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 |
2991 /* Return a newly created vector or string with specified arguments as | 3002 /* Return a newly created vector or string with specified arguments as |
2992 elements. If all the arguments are characters that can fit | 3003 elements. If all the arguments are characters that can fit |