diff options
author | Andy Wingo <wingo@pobox.com> | 2015-01-18 21:01:31 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2015-01-23 16:16:03 +0100 |
commit | e437c50b88bc540b09763df52331c096f6ec8533 (patch) | |
tree | e3ca2d8b4583b6bed3cab6c5f78171519feee860 /libguile/goops.c | |
parent | 568174d173e994eaac470123bb769a8847be11c7 (diff) | |
download | guile-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.c | 2 |
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 |