590 |
p->dogc = 0; |
p->dogc = 0; |
591 |
xfree (p->pointer); |
xfree (p->pointer); |
592 |
p->pointer = 0; |
p->pointer = 0; |
593 |
|
free_misc (arg); |
594 |
return Qnil; |
return Qnil; |
595 |
} |
} |
596 |
|
|
2923 |
marker_block = new; |
marker_block = new; |
2924 |
marker_block_index = 0; |
marker_block_index = 0; |
2925 |
n_marker_blocks++; |
n_marker_blocks++; |
2926 |
|
total_free_markers += MARKER_BLOCK_SIZE; |
2927 |
} |
} |
2928 |
XSETMISC (val, &marker_block->markers[marker_block_index]); |
XSETMISC (val, &marker_block->markers[marker_block_index]); |
2929 |
marker_block_index++; |
marker_block_index++; |
2930 |
} |
} |
2931 |
|
|
2932 |
|
--total_free_markers; |
2933 |
consing_since_gc += sizeof (union Lisp_Misc); |
consing_since_gc += sizeof (union Lisp_Misc); |
2934 |
misc_objects_consed++; |
misc_objects_consed++; |
2935 |
XMARKER (val)->gcmarkbit = 0; |
XMARKER (val)->gcmarkbit = 0; |
2936 |
return val; |
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++; |
2950 |
|
} |
2951 |
|
|
2952 |
/* Return a Lisp_Misc_Save_Value object containing POINTER and |
/* Return a Lisp_Misc_Save_Value object containing POINTER and |
2953 |
INTEGER. This is used to package C values to call record_unwind_protect. |
INTEGER. This is used to package C values to call record_unwind_protect. |
2954 |
The unwind function can get the C values back using XSAVE_VALUE. */ |
The unwind function can get the C values back using XSAVE_VALUE. */ |
2995 |
Lisp_Object marker; |
Lisp_Object marker; |
2996 |
{ |
{ |
2997 |
unchain_marker (XMARKER (marker)); |
unchain_marker (XMARKER (marker)); |
2998 |
|
free_misc (marker); |
|
XMISC (marker)->u_marker.type = Lisp_Misc_Free; |
|
|
XMISC (marker)->u_free.chain = marker_free_list; |
|
|
marker_free_list = XMISC (marker); |
|
|
|
|
|
total_free_markers++; |
|
2999 |
} |
} |
3000 |
|
|
3001 |
|
|