From 393301c5190d41f531c22b18f70e450207ea1418 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 9 Dec 2009 10:21:31 +0100 Subject: [PATCH] fix arbiter compilation with the generic codepath * libguile/arbiters.c (scm_try_arbiter, scm_release_arbiter): Fix for the generic case; not sure why it wasn't working. --- libguile/arbiters.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libguile/arbiters.c b/libguile/arbiters.c index a53b702fa..5923c718a 100644 --- a/libguile/arbiters.c +++ b/libguile/arbiters.c @@ -121,8 +121,10 @@ SCM_DEFINE (scm_try_arbiter, "try-arbiter", 1, 0, 0, #define FUNC_NAME s_scm_try_arbiter { scm_t_bits old; + scm_t_bits *loc; SCM_VALIDATE_SMOB (1, arb, arbiter); - FETCH_STORE (old, SCM_SMOB_DATA_0 (arb), SCM_LOCK_VAL); + loc = (scm_t_bits*)SCM_SMOB_OBJECT_N_LOC (arb, 0); + FETCH_STORE (old, *loc, SCM_LOCK_VAL); return scm_from_bool (old == SCM_UNLOCK_VAL); } #undef FUNC_NAME @@ -147,8 +149,10 @@ SCM_DEFINE (scm_release_arbiter, "release-arbiter", 1, 0, 0, #define FUNC_NAME s_scm_release_arbiter { scm_t_bits old; + scm_t_bits *loc; SCM_VALIDATE_SMOB (1, arb, arbiter); - FETCH_STORE (old, SCM_SMOB_DATA_0 (arb), SCM_UNLOCK_VAL); + loc = (scm_t_bits*)SCM_SMOB_OBJECT_N_LOC (arb, 0); + FETCH_STORE (old, *loc, SCM_UNLOCK_VAL); return scm_from_bool (old == SCM_LOCK_VAL); } #undef FUNC_NAME