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 |
