summaryrefslogtreecommitdiff
path: root/libguile/objects.h
diff options
context:
space:
mode:
authorMichael Livshin <mlivshin@bigfoot.com>2001-01-11 21:03:18 +0000
committerMichael Livshin <mlivshin@bigfoot.com>2001-01-11 21:03:18 +0000
commit322ec19d3cede3e4d74c209e8155b4faba21f5f5 (patch)
tree6d801086023ddcd6173b71b1fe4b90ba39f10b16 /libguile/objects.h
parent60d02d0914b57ba7e1ecd78a9ec27387cfd98b57 (diff)
downloadguile-322ec19d3cede3e4d74c209e8155b4faba21f5f5.tar.gz
* objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
casts its result, so doesn't yield an lvalue per ANSI C. * goops.c (s_scm_sys_set_object_setter_x): use SCM_SET_ENTITY_SETTER. (clear_method_cache): use SCM_SET_ENTITY_PROCEDURE. * gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts its result, so doesn't yield an lvalue per ANSI C. (SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS. (SCM_GC_CLR_CARD_FLAGS): redefined in terms of SCM_GC_SET_CARD_FLAGS. (SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto. * gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
Diffstat (limited to 'libguile/objects.h')
-rw-r--r--libguile/objects.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/objects.h b/libguile/objects.h
index aa5836e9f..110158a8e 100644
--- a/libguile/objects.h
+++ b/libguile/objects.h
@@ -94,6 +94,8 @@
#define SCM_SET_ENTITY_PROCEDURE(obj,v) \
(SCM_STRUCT_DATA (obj) [scm_struct_i_procedure] = SCM_UNPACK (v))
#define SCM_ENTITY_SETTER(obj) (SCM_PACK (SCM_STRUCT_DATA (obj)[scm_struct_i_setter]))
+#define SCM_SET_ENTITY_SETTER(obj, v) \
+ (SCM_STRUCT_DATA (obj) [scm_struct_i_setter] = SCM_UNPACK (v))
#define SCM_SET_CLASS_DESTRUCTOR(c, d) SCM_SET_VTABLE_DESTRUCTOR (c, d)
#define SCM_SET_CLASS_INSTANCE_SIZE(c, s) \