mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
* Removed an application of SCM_C[AD]R to non pairs.
This commit is contained in:
parent
2da0d971eb
commit
1a55163887
2 changed files with 9 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2001-04-20 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||||
|
|
||||||
|
* struct.c (scm_free_structs): Only pairs may be accessed with
|
||||||
|
SCM_C[AD]R.
|
||||||
|
|
||||||
2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
|
2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
|
||||||
|
|
||||||
* unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
|
* unif.h (SCM_ARRAY_CONTIGUOUS): Reintroduced as deprecated.
|
||||||
|
|
|
@ -377,7 +377,7 @@ scm_free_structs (void *dummy1, void *dummy2, void *dummy3)
|
||||||
{
|
{
|
||||||
/* Mark vtables in GC chain. GC mark set means delay freeing. */
|
/* Mark vtables in GC chain. GC mark set means delay freeing. */
|
||||||
SCM chain = newchain;
|
SCM chain = newchain;
|
||||||
while (SCM_NNULLP (chain))
|
while (!SCM_NULLP (chain))
|
||||||
{
|
{
|
||||||
SCM vtable = SCM_STRUCT_VTABLE (chain);
|
SCM vtable = SCM_STRUCT_VTABLE (chain);
|
||||||
if (SCM_STRUCT_GC_CHAIN (vtable) != 0 && vtable != chain)
|
if (SCM_STRUCT_GC_CHAIN (vtable) != 0 && vtable != chain)
|
||||||
|
@ -387,7 +387,7 @@ scm_free_structs (void *dummy1, void *dummy2, void *dummy3)
|
||||||
/* Free unmarked structs. */
|
/* Free unmarked structs. */
|
||||||
chain = newchain;
|
chain = newchain;
|
||||||
newchain = SCM_EOL;
|
newchain = SCM_EOL;
|
||||||
while (SCM_NNULLP (chain))
|
while (!SCM_NULLP (chain))
|
||||||
{
|
{
|
||||||
SCM obj = chain;
|
SCM obj = chain;
|
||||||
chain = SCM_STRUCT_GC_CHAIN (chain);
|
chain = SCM_STRUCT_GC_CHAIN (chain);
|
||||||
|
@ -402,7 +402,7 @@ scm_free_structs (void *dummy1, void *dummy2, void *dummy3)
|
||||||
scm_bits_t word0 = SCM_CELL_WORD_0 (obj) - scm_tc3_cons_gloc;
|
scm_bits_t word0 = SCM_CELL_WORD_0 (obj) - scm_tc3_cons_gloc;
|
||||||
/* access as struct */
|
/* access as struct */
|
||||||
scm_bits_t * vtable_data = (scm_bits_t *) word0;
|
scm_bits_t * vtable_data = (scm_bits_t *) word0;
|
||||||
scm_bits_t * data = (scm_bits_t *) SCM_UNPACK (SCM_CDR (obj));
|
scm_bits_t * data = SCM_STRUCT_DATA (obj);
|
||||||
scm_struct_free_t free_struct_data
|
scm_struct_free_t free_struct_data
|
||||||
= ((scm_struct_free_t) vtable_data[scm_struct_i_free]);
|
= ((scm_struct_free_t) vtable_data[scm_struct_i_free]);
|
||||||
SCM_SET_CELL_TYPE (obj, scm_tc_free_cell);
|
SCM_SET_CELL_TYPE (obj, scm_tc_free_cell);
|
||||||
|
@ -410,7 +410,7 @@ scm_free_structs (void *dummy1, void *dummy2, void *dummy3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (SCM_NNULLP (newchain));
|
while (!SCM_NULLP (newchain));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue