diff options
-rw-r--r-- | libguile/vm-i-scheme.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c index d4dac80d3..efaa73546 100644 --- a/libguile/vm-i-scheme.c +++ b/libguile/vm-i-scheme.c @@ -274,6 +274,28 @@ VM_DEFINE_FUNCTION (mod, "mod", 2) RETURN (scm_modulo (x, y)); } + +/* + * GOOPS support + */ +VM_DEFINE_FUNCTION (slot_ref, "slot-ref", 2) +{ + size_t slot; + ARGS2 (instance, idx); + slot = SCM_I_INUM (idx); + RETURN (SCM_PACK (SCM_STRUCT_DATA (instance) [slot])); +} + +VM_DEFINE_FUNCTION (slot_set, "slot-set", 3) +{ + size_t slot; + ARGS3 (instance, idx, val); + slot = SCM_I_INUM (idx); + SCM_STRUCT_DATA (instance) [slot] = SCM_UNPACK (val); + RETURN (SCM_UNSPECIFIED); +} + + /* Local Variables: c-file-style: "gnu" |