2229 |
new = (struct float_block *) lisp_align_malloc (sizeof *new, |
new = (struct float_block *) lisp_align_malloc (sizeof *new, |
2230 |
MEM_TYPE_FLOAT); |
MEM_TYPE_FLOAT); |
2231 |
new->next = float_block; |
new->next = float_block; |
2232 |
|
bzero ((char *) new->gcmarkbits, sizeof new->gcmarkbits); |
2233 |
float_block = new; |
float_block = new; |
2234 |
float_block_index = 0; |
float_block_index = 0; |
2235 |
n_float_blocks++; |
n_float_blocks++; |
2236 |
} |
} |
2237 |
XSETFLOAT (val, &float_block->floats[float_block_index++]); |
XSETFLOAT (val, &float_block->floats[float_block_index]); |
2238 |
|
float_block_index++; |
2239 |
} |
} |
2240 |
|
|
2241 |
XFLOAT_DATA (val) = float_value; |
XFLOAT_DATA (val) = float_value; |
2242 |
FLOAT_UNMARK (XFLOAT (val)); |
eassert (!FLOAT_MARKED_P (XFLOAT (val))); |
2243 |
consing_since_gc += sizeof (struct Lisp_Float); |
consing_since_gc += sizeof (struct Lisp_Float); |
2244 |
floats_consed++; |
floats_consed++; |
2245 |
return val; |
return val; |
2347 |
register struct cons_block *new; |
register struct cons_block *new; |
2348 |
new = (struct cons_block *) lisp_align_malloc (sizeof *new, |
new = (struct cons_block *) lisp_align_malloc (sizeof *new, |
2349 |
MEM_TYPE_CONS); |
MEM_TYPE_CONS); |
2350 |
|
bzero ((char *) new->gcmarkbits, sizeof new->gcmarkbits); |
2351 |
new->next = cons_block; |
new->next = cons_block; |
2352 |
cons_block = new; |
cons_block = new; |
2353 |
cons_block_index = 0; |
cons_block_index = 0; |
2354 |
n_cons_blocks++; |
n_cons_blocks++; |
2355 |
} |
} |
2356 |
XSETCONS (val, &cons_block->conses[cons_block_index++]); |
XSETCONS (val, &cons_block->conses[cons_block_index]); |
2357 |
|
cons_block_index++; |
2358 |
} |
} |
2359 |
|
|
2360 |
XSETCAR (val, car); |
XSETCAR (val, car); |
2361 |
XSETCDR (val, cdr); |
XSETCDR (val, cdr); |
2362 |
CONS_UNMARK (XCONS (val)); |
eassert (!CONS_MARKED_P (XCONS (val))); |
2363 |
consing_since_gc += sizeof (struct Lisp_Cons); |
consing_since_gc += sizeof (struct Lisp_Cons); |
2364 |
cons_cells_consed++; |
cons_cells_consed++; |
2365 |
return val; |
return val; |
2808 |
symbol_block_index = 0; |
symbol_block_index = 0; |
2809 |
n_symbol_blocks++; |
n_symbol_blocks++; |
2810 |
} |
} |
2811 |
XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index++]); |
XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index]); |
2812 |
|
symbol_block_index++; |
2813 |
} |
} |
2814 |
|
|
2815 |
p = XSYMBOL (val); |
p = XSYMBOL (val); |
2887 |
marker_block_index = 0; |
marker_block_index = 0; |
2888 |
n_marker_blocks++; |
n_marker_blocks++; |
2889 |
} |
} |
2890 |
XSETMISC (val, &marker_block->markers[marker_block_index++]); |
XSETMISC (val, &marker_block->markers[marker_block_index]); |
2891 |
|
marker_block_index++; |
2892 |
} |
} |
2893 |
|
|
2894 |
consing_since_gc += sizeof (union Lisp_Misc); |
consing_since_gc += sizeof (union Lisp_Misc); |
4500 |
|
|
4501 |
/* Clear the mark bits that we set in certain root slots. */ |
/* Clear the mark bits that we set in certain root slots. */ |
4502 |
|
|
|
#if (GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE \ |
|
|
|| GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES) |
|
|
{ |
|
|
register struct gcpro *tail; |
|
|
} |
|
|
#endif |
|
|
|
|
4503 |
unmark_byte_stack (); |
unmark_byte_stack (); |
4504 |
VECTOR_UNMARK (&buffer_defaults); |
VECTOR_UNMARK (&buffer_defaults); |
4505 |
VECTOR_UNMARK (&buffer_local_symbols); |
VECTOR_UNMARK (&buffer_local_symbols); |