mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 22:31:12 +02:00
* gc.c (scm_gc_sweep): added a `continue' statement that have
fallen through the cracks in the merge. thanks to Shuji Narazaki!
This commit is contained in:
parent
5aba8e27ab
commit
7bb8eac780
1 changed files with 7 additions and 6 deletions
|
@ -1178,7 +1178,7 @@ gc_mark_nimp:
|
|||
int len = SCM_LENGTH (layout);
|
||||
char * fields_desc = SCM_CHARS (layout);
|
||||
scm_bits_t * struct_data = (scm_bits_t *) SCM_STRUCT_DATA (ptr);
|
||||
|
||||
|
||||
if (vtable_data[scm_struct_i_flags] & SCM_STRUCTF_ENTITY)
|
||||
{
|
||||
scm_gc_mark (SCM_PACK (struct_data[scm_struct_i_procedure]));
|
||||
|
@ -1187,7 +1187,7 @@ gc_mark_nimp:
|
|||
if (len)
|
||||
{
|
||||
int x;
|
||||
|
||||
|
||||
for (x = 0; x < len - 2; x += 2, ++struct_data)
|
||||
if (fields_desc[x] == 'p')
|
||||
scm_gc_mark (SCM_PACK (*struct_data));
|
||||
|
@ -1421,10 +1421,10 @@ scm_mark_locations (SCM_STACKITEM x[], scm_sizet n)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (SCM_GC_IN_CARD_HEADERP (ptr))
|
||||
break;
|
||||
|
||||
|
||||
if (scm_heap_table[seg_id].span == 1
|
||||
|| SCM_DOUBLE_CELLP (obj))
|
||||
{
|
||||
|
@ -1581,7 +1581,7 @@ scm_gc_sweep ()
|
|||
|
||||
if (SCM_GCMARKP (scmptr))
|
||||
continue;
|
||||
|
||||
|
||||
switch SCM_TYP7 (scmptr)
|
||||
{
|
||||
case scm_tcs_cons_gloc:
|
||||
|
@ -1601,6 +1601,7 @@ scm_gc_sweep ()
|
|||
*/
|
||||
SCM_SET_STRUCT_GC_CHAIN (scmptr, scm_structs_to_free);
|
||||
scm_structs_to_free = scmptr;
|
||||
continue;
|
||||
}
|
||||
/* fall through so that scmptr gets collected */
|
||||
}
|
||||
|
@ -1720,7 +1721,7 @@ scm_gc_sweep ()
|
|||
sweeperr:
|
||||
SCM_MISC_ERROR ("unknown type", SCM_EOL);
|
||||
}
|
||||
|
||||
|
||||
if (!--left_to_collect)
|
||||
{
|
||||
SCM_SETCAR (scmptr, nfreelist);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue