mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 14:21:10 +02:00
* gc.c (scm_mark_locations): mark freecells too, and don't worry
about any possible false positives. (scm_debug_newcell): don't change cell type to `allocated'. (scm_debug_newcell2): ditto. (scm_gc_for_newcell): ditto. (scm_gc_mark): remove the tc16_allocated case.
This commit is contained in:
parent
adf9e9592d
commit
3731149d83
1 changed files with 2 additions and 8 deletions
|
@ -651,7 +651,6 @@ scm_debug_newcell (void)
|
||||||
{
|
{
|
||||||
new = scm_freelist;
|
new = scm_freelist;
|
||||||
scm_freelist = SCM_FREE_CELL_CDR (scm_freelist);
|
scm_freelist = SCM_FREE_CELL_CDR (scm_freelist);
|
||||||
SCM_SET_FREE_CELL_TYPE (new, scm_tc16_allocated);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new;
|
return new;
|
||||||
|
@ -677,7 +676,6 @@ scm_debug_newcell2 (void)
|
||||||
{
|
{
|
||||||
new = scm_freelist2;
|
new = scm_freelist2;
|
||||||
scm_freelist2 = SCM_FREE_CELL_CDR (scm_freelist2);
|
scm_freelist2 = SCM_FREE_CELL_CDR (scm_freelist2);
|
||||||
SCM_SET_FREE_CELL_TYPE (new, scm_tc16_allocated);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new;
|
return new;
|
||||||
|
@ -935,7 +933,6 @@ scm_gc_for_newcell (scm_freelist_t *master, SCM *freelist)
|
||||||
|
|
||||||
--scm_ints_disabled;
|
--scm_ints_disabled;
|
||||||
*freelist = SCM_FREE_CELL_CDR (cell);
|
*freelist = SCM_FREE_CELL_CDR (cell);
|
||||||
SCM_SET_FREE_CELL_TYPE (cell, scm_tc16_allocated);
|
|
||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1342,7 +1339,6 @@ gc_mark_nimp:
|
||||||
{ /* should be faster than going through scm_smobs */
|
{ /* should be faster than going through scm_smobs */
|
||||||
case scm_tc_free_cell:
|
case scm_tc_free_cell:
|
||||||
/* printf("found free_cell %X ", ptr); fflush(stdout); */
|
/* printf("found free_cell %X ", ptr); fflush(stdout); */
|
||||||
case scm_tc16_allocated:
|
|
||||||
case scm_tc16_big:
|
case scm_tc16_big:
|
||||||
case scm_tc16_real:
|
case scm_tc16_real:
|
||||||
case scm_tc16_complex:
|
case scm_tc16_complex:
|
||||||
|
@ -1427,10 +1423,8 @@ scm_mark_locations (SCM_STACKITEM x[], scm_sizet n)
|
||||||
|
|
||||||
if (scm_heap_table[seg_id].span == 1
|
if (scm_heap_table[seg_id].span == 1
|
||||||
|| SCM_DOUBLE_CELLP (obj))
|
|| SCM_DOUBLE_CELLP (obj))
|
||||||
{
|
scm_gc_mark (obj);
|
||||||
if (!SCM_FREE_CELL_P (obj))
|
|
||||||
scm_gc_mark (obj);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue