summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@oblong.net>2009-03-17 16:09:41 +0100
committerAndy Wingo <wingo@oblong.net>2009-03-17 16:09:41 +0100
commit3e64d235e9f950b73c70b57c8ee3ee349d2fdae8 (patch)
tree21b638a7b35d02678ef40bba1f3dd52e5c0c9cf2
parentb07a3cfda145c11039eb92a9d92ee2257479e2b7 (diff)
parentfeccd2d3100fd2964d4c2df58ab3da7ce4949a66 (diff)
downloadguile-3e64d235e9f950b73c70b57c8ee3ee349d2fdae8.tar.gz
Merge commit 'feccd2d3100fd2964d4c2df58ab3da7ce4949a66' into vm-check
-rw-r--r--libguile/goops.c2
-rw-r--r--libguile/procs.c2
-rw-r--r--libguile/procs.h2
3 files changed, 4 insertions, 2 deletions
diff --git a/libguile/goops.c b/libguile/goops.c
index 51b9b4201..2fc6c317b 100644
--- a/libguile/goops.c
+++ b/libguile/goops.c
@@ -1905,7 +1905,7 @@ scm_c_extend_primitive_generic (SCM extended, SCM extension)
gext = scm_call_2 (SCM_VARIABLE_REF (scm_var_make_extended_generic),
gf,
SCM_SNAME (extension));
- *SCM_SUBR_GENERIC (extension) = gext;
+ SCM_SET_SUBR_GENERIC (extension, gext);
}
else
{
diff --git a/libguile/procs.c b/libguile/procs.c
index 74cb86cce..fd7f3aa48 100644
--- a/libguile/procs.c
+++ b/libguile/procs.c
@@ -102,7 +102,7 @@ scm_c_make_subr_with_generic (const char *name,
long type, SCM (*fcn) (), SCM *gf)
{
SCM subr = scm_c_make_subr (name, type, fcn);
- SCM_SUBR_GENERIC (subr) = gf;
+ SCM_SET_SUBR_GENERIC_LOC (subr, gf);
return subr;
}
diff --git a/libguile/procs.h b/libguile/procs.h
index 8365abec5..6f8d4c21a 100644
--- a/libguile/procs.h
+++ b/libguile/procs.h
@@ -50,6 +50,8 @@ typedef struct
#define SCM_DSUBRF(x) ((double (*)()) SCM_CELL_WORD_1 (x))
#define SCM_SUBR_PROPS(x) (SCM_SUBR_ENTRY (x).properties)
#define SCM_SUBR_GENERIC(x) (SCM_SUBR_ENTRY (x).generic)
+#define SCM_SET_SUBR_GENERIC(x, g) (*SCM_SUBR_ENTRY (x).generic = (g))
+#define SCM_SET_SUBR_GENERIC_LOC(x, g) (SCM_SUBR_ENTRY (x).generic = (g))
#define SCM_CCLO_LENGTH(x) (SCM_CELL_WORD_0 (x) >> 8)
#define SCM_MAKE_CCLO_TAG(v) (((v) << 8) + scm_tc7_cclo)