fix arbiter compilation with the generic codepath
authorAndy Wingo <wingo@pobox.com>
Wed, 9 Dec 2009 09:21:31 +0000 (10:21 +0100)
committerAndy Wingo <wingo@pobox.com>
Wed, 9 Dec 2009 09:21:31 +0000 (10:21 +0100)
* libguile/arbiters.c (scm_try_arbiter, scm_release_arbiter): Fix for
  the generic case; not sure why it wasn't working.

libguile/arbiters.c

index a53b702..5923c71 100644 (file)
@@ -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