summaryrefslogtreecommitdiff
path: root/libguile/procs.h
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-01-20 23:29:09 +0100
committerLudovic Courtès <ludo@gnu.org>2009-02-11 23:37:46 +0100
commitfeccd2d3100fd2964d4c2df58ab3da7ce4949a66 (patch)
tree1dd3e9f2002bff11ebd27babb8f5dc021ff7fc4d /libguile/procs.h
parentcce8b2ce93703aff953750fb40cb53176ea66504 (diff)
downloadguile-feccd2d3100fd2964d4c2df58ab3da7ce4949a66.tar.gz
Add `SCM_SET_SUBR_GENERIC ()' to replace `SCM_SUBR_GENERIC ()' as an lvalue.
* libguile/goops.c (scm_c_extend_primitive_generic): Use `SCM_SET_SUBR_GENERIC ()' instead of using `SCM_SUBR_GENERIC ()' as an lvalue. * libguile/procs.c (scm_c_make_subr_with_generic): Use `SCM_SET_SUBR_GENERIC_LOC ()'. * libguile/procs.h (SCM_SET_SUBR_GENERIC, SCM_SET_SUBR_GENERIC_LOC): New macros.
Diffstat (limited to 'libguile/procs.h')
-rw-r--r--libguile/procs.h2
1 files changed, 2 insertions, 0 deletions
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)