summaryrefslogtreecommitdiff
path: root/libguile/smob.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-02-19 12:23:29 +0100
committerAndy Wingo <wingo@pobox.com>2012-03-08 12:40:27 +0100
commit75ba64d6797f5857cc9885eb753126119a8c8b68 (patch)
tree117063e8b5d92a03fd83c9cea34f3009a0048f33 /libguile/smob.c
parent7b327550e20967b0a8f89182bcf9a04543db3a0f (diff)
downloadguile-75ba64d6797f5857cc9885eb753126119a8c8b68.tar.gz
use the new finalizer helpers
* libguile/foreign.c (scm_set_pointer_finalizer_x) * libguile/ports.c (finalize_port) * libguile/smob.c (scm_i_new_smob, scm_i_new_double_smob) * libguile/struct.c (scm_i_alloc_struct) * libguile/numbers.c (make_bignum): Use the new API.
Diffstat (limited to 'libguile/smob.c')
-rw-r--r--libguile/smob.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/libguile/smob.c b/libguile/smob.c
index 3a3e688ba..6a341ef5d 100644
--- a/libguile/smob.c
+++ b/libguile/smob.c
@@ -602,14 +602,7 @@ scm_i_new_smob (scm_t_bits tc, scm_t_bits data)
SCM_SET_CELL_WORD_0 (ret, tc);
if (scm_smobs[smobnum].free)
- {
- GC_finalization_proc prev_finalizer;
- GC_PTR prev_finalizer_data;
-
- GC_REGISTER_FINALIZER_NO_ORDER (SCM2PTR (ret),
- finalize_smob, NULL,
- &prev_finalizer, &prev_finalizer_data);
- }
+ scm_i_set_finalizer (SCM2PTR (ret), finalize_smob, NULL);
return ret;
}
@@ -636,14 +629,7 @@ scm_i_new_double_smob (scm_t_bits tc, scm_t_bits data1,
SCM_SET_CELL_WORD_0 (ret, tc);
if (scm_smobs[smobnum].free)
- {
- GC_finalization_proc prev_finalizer;
- GC_PTR prev_finalizer_data;
-
- GC_REGISTER_FINALIZER_NO_ORDER (SCM2PTR (ret),
- finalize_smob, NULL,
- &prev_finalizer, &prev_finalizer_data);
- }
+ scm_i_set_finalizer (SCM2PTR (ret), finalize_smob, NULL);
return ret;
}