mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
Eliminate uses of GC_PTR, a holdover from libgc 6.x.
* libguile/bdw-gc.h (GC_PTR): Don't define. * libguile/finalizers.c (scm_i_set_finalizer): Use void* instead of GC_PTR. * libguile/foreign.c (pointer_finalizer_trampoline): Likewise. * libguile/guardians.c (finalize_guarded, scm_i_guard): Likewise. * libguile/numbers.c (finalize_bignum): Likewise. * libguile/ports.c (finalize_port, finalize_iconv_descriptors): Likewise. * libguile/smob.c (finalize_smob): Likewise. * libguile/struct.c (struct_finalizer_trampoline): Likewise. * libguile/weak-set.c (move_weak_entry, resize_set): (weak_set_add_x, weak_set_remove_x): Likewise, but also change some casts that should've been GC_PTR* to void**, and don't cast pointer values to void*. * libguile/weak-table.c (register_disappearing_links): (unregister_disappearing_links, move_disappearing_links): Likewise. * libguile/weak-vector.c (scm_c_weak_vector_set_x): Likewise.
This commit is contained in:
parent
ea17899018
commit
499f3de0d7
11 changed files with 34 additions and 38 deletions
|
@ -46,10 +46,7 @@
|
||||||
# error Boehm-GC version 7.2 or better is needed
|
# error Boehm-GC version 7.2 or better is needed
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined GC_VERSION_MAJOR) && (GC_VERSION_MAJOR >= 7)
|
#define GC_PTR do_not_use_GC_PTR do_not_use_GC_PTR do_not_use_GC_PTR
|
||||||
/* This type was provided by `libgc' 6.x. */
|
|
||||||
typedef void *GC_PTR;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Return true if PTR points to the heap. */
|
/* Return true if PTR points to the heap. */
|
||||||
|
|
|
@ -58,7 +58,7 @@ void
|
||||||
scm_i_set_finalizer (void *obj, scm_t_finalizer_proc proc, void *data)
|
scm_i_set_finalizer (void *obj, scm_t_finalizer_proc proc, void *data)
|
||||||
{
|
{
|
||||||
GC_finalization_proc prev;
|
GC_finalization_proc prev;
|
||||||
GC_PTR prev_data;
|
void *prev_data;
|
||||||
GC_REGISTER_FINALIZER_NO_ORDER (obj, proc, data, &prev, &prev_data);
|
GC_REGISTER_FINALIZER_NO_ORDER (obj, proc, data, &prev, &prev_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ register_weak_reference (SCM from, SCM to)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pointer_finalizer_trampoline (GC_PTR ptr, GC_PTR data)
|
pointer_finalizer_trampoline (void *ptr, void *data)
|
||||||
{
|
{
|
||||||
scm_t_pointer_finalizer finalizer = data;
|
scm_t_pointer_finalizer finalizer = data;
|
||||||
finalizer (SCM_POINTER_VALUE (SCM_PACK_POINTER (ptr)));
|
finalizer (SCM_POINTER_VALUE (SCM_PACK_POINTER (ptr)));
|
||||||
|
|
|
@ -103,7 +103,7 @@ guardian_print (SCM guardian, SCM port, scm_print_state *pstate SCM_UNUSED)
|
||||||
/* Handle finalization of OBJ which is guarded by the guardians listed in
|
/* Handle finalization of OBJ which is guarded by the guardians listed in
|
||||||
GUARDIAN_LIST. */
|
GUARDIAN_LIST. */
|
||||||
static void
|
static void
|
||||||
finalize_guarded (GC_PTR ptr, GC_PTR finalizer_data)
|
finalize_guarded (void *ptr, void *finalizer_data)
|
||||||
{
|
{
|
||||||
SCM cell_pool;
|
SCM cell_pool;
|
||||||
SCM obj, guardian_list, proxied_finalizer;
|
SCM obj, guardian_list, proxied_finalizer;
|
||||||
|
@ -166,7 +166,7 @@ finalize_guarded (GC_PTR ptr, GC_PTR finalizer_data)
|
||||||
/* Re-register the finalizer that was in place before we installed this
|
/* Re-register the finalizer that was in place before we installed this
|
||||||
one. */
|
one. */
|
||||||
GC_finalization_proc finalizer, prev_finalizer;
|
GC_finalization_proc finalizer, prev_finalizer;
|
||||||
GC_PTR finalizer_data, prev_finalizer_data;
|
void *finalizer_data, *prev_finalizer_data;
|
||||||
|
|
||||||
finalizer = (GC_finalization_proc) SCM_UNPACK_POINTER (SCM_CAR (proxied_finalizer));
|
finalizer = (GC_finalization_proc) SCM_UNPACK_POINTER (SCM_CAR (proxied_finalizer));
|
||||||
finalizer_data = SCM_UNPACK_POINTER (SCM_CDR (proxied_finalizer));
|
finalizer_data = SCM_UNPACK_POINTER (SCM_CDR (proxied_finalizer));
|
||||||
|
@ -206,7 +206,7 @@ scm_i_guard (SCM guardian, SCM obj)
|
||||||
the very beginning of an object's lifetime (e.g., see `SCM_NEWSMOB')
|
the very beginning of an object's lifetime (e.g., see `SCM_NEWSMOB')
|
||||||
or by this function. */
|
or by this function. */
|
||||||
GC_finalization_proc prev_finalizer;
|
GC_finalization_proc prev_finalizer;
|
||||||
GC_PTR prev_data;
|
void *prev_data;
|
||||||
SCM guardians_for_obj, finalizer_data;
|
SCM guardians_for_obj, finalizer_data;
|
||||||
|
|
||||||
g->live++;
|
g->live++;
|
||||||
|
|
|
@ -179,7 +179,7 @@ static mpz_t z_negative_one;
|
||||||
|
|
||||||
/* Clear the `mpz_t' embedded in bignum PTR. */
|
/* Clear the `mpz_t' embedded in bignum PTR. */
|
||||||
static void
|
static void
|
||||||
finalize_bignum (GC_PTR ptr, GC_PTR data)
|
finalize_bignum (void *ptr, void *data)
|
||||||
{
|
{
|
||||||
SCM bignum;
|
SCM bignum;
|
||||||
|
|
||||||
|
|
|
@ -553,7 +553,7 @@ do_free (void *body_data)
|
||||||
|
|
||||||
/* Finalize the object (a port) pointed to by PTR. */
|
/* Finalize the object (a port) pointed to by PTR. */
|
||||||
static void
|
static void
|
||||||
finalize_port (GC_PTR ptr, GC_PTR data)
|
finalize_port (void *ptr, void *data)
|
||||||
{
|
{
|
||||||
SCM port = SCM_PACK_POINTER (ptr);
|
SCM port = SCM_PACK_POINTER (ptr);
|
||||||
|
|
||||||
|
@ -848,7 +848,7 @@ scm_i_default_port_encoding (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
finalize_iconv_descriptors (GC_PTR ptr, GC_PTR data)
|
finalize_iconv_descriptors (void *ptr, void *data)
|
||||||
{
|
{
|
||||||
close_iconv_descriptors (ptr);
|
close_iconv_descriptors (ptr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -377,7 +377,7 @@ scm_gc_mark (SCM o)
|
||||||
|
|
||||||
/* Finalize SMOB by calling its SMOB type's free function, if any. */
|
/* Finalize SMOB by calling its SMOB type's free function, if any. */
|
||||||
static void
|
static void
|
||||||
finalize_smob (GC_PTR ptr, GC_PTR data)
|
finalize_smob (void *ptr, void *data)
|
||||||
{
|
{
|
||||||
SCM smob;
|
SCM smob;
|
||||||
size_t (* free_smob) (SCM);
|
size_t (* free_smob) (SCM);
|
||||||
|
|
|
@ -411,7 +411,7 @@ SCM_DEFINE (scm_struct_vtable_p, "struct-vtable?", 1, 0, 0,
|
||||||
|
|
||||||
/* Finalization: invoke the finalizer of the struct pointed to by PTR. */
|
/* Finalization: invoke the finalizer of the struct pointed to by PTR. */
|
||||||
static void
|
static void
|
||||||
struct_finalizer_trampoline (GC_PTR ptr, GC_PTR unused_data)
|
struct_finalizer_trampoline (void *ptr, void *unused_data)
|
||||||
{
|
{
|
||||||
SCM obj = PTR2SCM (ptr);
|
SCM obj = PTR2SCM (ptr);
|
||||||
scm_t_struct_finalize finalize = SCM_STRUCT_FINALIZER (obj);
|
scm_t_struct_finalize finalize = SCM_STRUCT_FINALIZER (obj);
|
||||||
|
|
|
@ -174,11 +174,11 @@ move_weak_entry (scm_t_weak_entry *from, scm_t_weak_entry *to)
|
||||||
if (copy.key && SCM_HEAP_OBJECT_P (SCM_PACK (copy.key)))
|
if (copy.key && SCM_HEAP_OBJECT_P (SCM_PACK (copy.key)))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_GC_MOVE_DISAPPEARING_LINK
|
#ifdef HAVE_GC_MOVE_DISAPPEARING_LINK
|
||||||
GC_move_disappearing_link ((GC_PTR) &from->key, (GC_PTR) &to->key);
|
GC_move_disappearing_link ((void **) &from->key, (void **) &to->key);
|
||||||
#else
|
#else
|
||||||
GC_unregister_disappearing_link ((GC_PTR) &from->key);
|
GC_unregister_disappearing_link ((void **) &from->key);
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &to->key,
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &to->key,
|
||||||
(GC_PTR) to->key);
|
(void *) to->key);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -418,8 +418,8 @@ resize_set (scm_t_weak_set *set)
|
||||||
new_entries[new_k].key = copy.key;
|
new_entries[new_k].key = copy.key;
|
||||||
|
|
||||||
if (SCM_HEAP_OBJECT_P (SCM_PACK (copy.key)))
|
if (SCM_HEAP_OBJECT_P (SCM_PACK (copy.key)))
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &new_entries[new_k].key,
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &new_entries[new_k].key,
|
||||||
(GC_PTR) new_entries[new_k].key);
|
(void *) new_entries[new_k].key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -579,8 +579,8 @@ weak_set_add_x (scm_t_weak_set *set, unsigned long hash,
|
||||||
entries[k].key = SCM_UNPACK (obj);
|
entries[k].key = SCM_UNPACK (obj);
|
||||||
|
|
||||||
if (SCM_HEAP_OBJECT_P (obj))
|
if (SCM_HEAP_OBJECT_P (obj))
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &entries[k].key,
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &entries[k].key,
|
||||||
(GC_PTR) SCM2PTR (obj));
|
SCM2PTR (obj));
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
@ -631,7 +631,7 @@ weak_set_remove_x (scm_t_weak_set *set, unsigned long hash,
|
||||||
entries[k].key = 0;
|
entries[k].key = 0;
|
||||||
|
|
||||||
if (SCM_HEAP_OBJECT_P (SCM_PACK (copy.key)))
|
if (SCM_HEAP_OBJECT_P (SCM_PACK (copy.key)))
|
||||||
GC_unregister_disappearing_link ((GC_PTR) &entries[k].key);
|
GC_unregister_disappearing_link ((void **) &entries[k].key);
|
||||||
|
|
||||||
if (--set->n_items < set->lower)
|
if (--set->n_items < set->lower)
|
||||||
resize_set (set);
|
resize_set (set);
|
||||||
|
|
|
@ -130,14 +130,14 @@ register_disappearing_links (scm_t_weak_entry *entry,
|
||||||
if (SCM_UNPACK (k) && SCM_HEAP_OBJECT_P (k)
|
if (SCM_UNPACK (k) && SCM_HEAP_OBJECT_P (k)
|
||||||
&& (kind == SCM_WEAK_TABLE_KIND_KEY
|
&& (kind == SCM_WEAK_TABLE_KIND_KEY
|
||||||
|| kind == SCM_WEAK_TABLE_KIND_BOTH))
|
|| kind == SCM_WEAK_TABLE_KIND_BOTH))
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &entry->key,
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &entry->key,
|
||||||
(GC_PTR) SCM2PTR (k));
|
SCM2PTR (k));
|
||||||
|
|
||||||
if (SCM_UNPACK (v) && SCM_HEAP_OBJECT_P (v)
|
if (SCM_UNPACK (v) && SCM_HEAP_OBJECT_P (v)
|
||||||
&& (kind == SCM_WEAK_TABLE_KIND_VALUE
|
&& (kind == SCM_WEAK_TABLE_KIND_VALUE
|
||||||
|| kind == SCM_WEAK_TABLE_KIND_BOTH))
|
|| kind == SCM_WEAK_TABLE_KIND_BOTH))
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &entry->value,
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &entry->value,
|
||||||
(GC_PTR) SCM2PTR (v));
|
SCM2PTR (v));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -145,10 +145,10 @@ unregister_disappearing_links (scm_t_weak_entry *entry,
|
||||||
scm_t_weak_table_kind kind)
|
scm_t_weak_table_kind kind)
|
||||||
{
|
{
|
||||||
if (kind == SCM_WEAK_TABLE_KIND_KEY || kind == SCM_WEAK_TABLE_KIND_BOTH)
|
if (kind == SCM_WEAK_TABLE_KIND_KEY || kind == SCM_WEAK_TABLE_KIND_BOTH)
|
||||||
GC_unregister_disappearing_link ((GC_PTR) &entry->key);
|
GC_unregister_disappearing_link ((void **) &entry->key);
|
||||||
|
|
||||||
if (kind == SCM_WEAK_TABLE_KIND_VALUE || kind == SCM_WEAK_TABLE_KIND_BOTH)
|
if (kind == SCM_WEAK_TABLE_KIND_VALUE || kind == SCM_WEAK_TABLE_KIND_BOTH)
|
||||||
GC_unregister_disappearing_link ((GC_PTR) &entry->value);
|
GC_unregister_disappearing_link ((void **) &entry->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -159,10 +159,10 @@ move_disappearing_links (scm_t_weak_entry *from, scm_t_weak_entry *to,
|
||||||
&& SCM_HEAP_OBJECT_P (key))
|
&& SCM_HEAP_OBJECT_P (key))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_GC_MOVE_DISAPPEARING_LINK
|
#ifdef HAVE_GC_MOVE_DISAPPEARING_LINK
|
||||||
GC_move_disappearing_link ((GC_PTR) &from->key, (GC_PTR) &to->key);
|
GC_move_disappearing_link ((void **) &from->key, (void **) &to->key);
|
||||||
#else
|
#else
|
||||||
GC_unregister_disappearing_link (&from->key);
|
GC_unregister_disappearing_link ((void **) &from->key);
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK (&to->key, SCM2PTR (key));
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &to->key, SCM2PTR (key));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,10 +170,10 @@ move_disappearing_links (scm_t_weak_entry *from, scm_t_weak_entry *to,
|
||||||
&& SCM_HEAP_OBJECT_P (value))
|
&& SCM_HEAP_OBJECT_P (value))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_GC_MOVE_DISAPPEARING_LINK
|
#ifdef HAVE_GC_MOVE_DISAPPEARING_LINK
|
||||||
GC_move_disappearing_link ((GC_PTR) &from->value, (GC_PTR) &to->value);
|
GC_move_disappearing_link ((void **) &from->value, (void **) &to->value);
|
||||||
#else
|
#else
|
||||||
GC_unregister_disappearing_link (&from->value);
|
GC_unregister_disappearing_link ((void **) &from->value);
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK (&to->value, SCM2PTR (value));
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &to->value, SCM2PTR (value));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -171,13 +171,12 @@ scm_c_weak_vector_set_x (SCM wv, size_t k, SCM x)
|
||||||
elts = SCM_I_VECTOR_WELTS (wv);
|
elts = SCM_I_VECTOR_WELTS (wv);
|
||||||
|
|
||||||
if (prev && SCM_HEAP_OBJECT_P (SCM_PACK_POINTER (prev)))
|
if (prev && SCM_HEAP_OBJECT_P (SCM_PACK_POINTER (prev)))
|
||||||
GC_unregister_disappearing_link ((GC_PTR) &elts[k]);
|
GC_unregister_disappearing_link ((void **) &elts[k]);
|
||||||
|
|
||||||
elts[k] = x;
|
elts[k] = x;
|
||||||
|
|
||||||
if (SCM_HEAP_OBJECT_P (x))
|
if (SCM_HEAP_OBJECT_P (x))
|
||||||
SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &elts[k],
|
SCM_I_REGISTER_DISAPPEARING_LINK ((void **) &elts[k], SCM2PTR (x));
|
||||||
(GC_PTR) SCM2PTR (x));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue