summaryrefslogtreecommitdiff
path: root/libguile/goops.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2015-01-18 21:01:31 +0100
committerAndy Wingo <wingo@pobox.com>2015-01-23 16:16:03 +0100
commite437c50b88bc540b09763df52331c096f6ec8533 (patch)
treee3ca2d8b4583b6bed3cab6c5f78171519feee860 /libguile/goops.c
parent568174d173e994eaac470123bb769a8847be11c7 (diff)
downloadguile-e437c50b88bc540b09763df52331c096f6ec8533.tar.gz
Use a vtable bit to mark <slot> instances
* libguile/goops.h (SCM_VTABLE_FLAG_GOOPS_SLOT): Allocate another vtable flag to indicate that instances of this vtable are slots. * libguile/goops.c (scm_init_goops_builtins): Export vtable-flag-goops-slot to Scheme. * module/oop/goops.scm (<slot>, slot?, make-standard-class, initialize): Arrange for <slot> classes to have the vtable-flag-goops.slot. (build-slots-list): Ensure that <slot> slots are statically laid out.
Diffstat (limited to 'libguile/goops.c')
-rw-r--r--libguile/goops.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/goops.c b/libguile/goops.c
index 398a5d263..d5c743559 100644
--- a/libguile/goops.c
+++ b/libguile/goops.c
@@ -1053,6 +1053,8 @@ scm_init_goops_builtins (void *unused)
scm_from_int (SCM_VTABLE_FLAG_GOOPS_CLASS));
scm_c_define ("vtable-flag-goops-valid",
scm_from_int (SCM_VTABLE_FLAG_GOOPS_VALID));
+ scm_c_define ("vtable-flag-goops-slot",
+ scm_from_int (SCM_VTABLE_FLAG_GOOPS_SLOT));
}
void