summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-18 05:39:48 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-18 05:39:48 -0700
commitb25e08a3328ffa4bf29a8a8651973d88ae79b90c (patch)
tree859aba874523d6e0598198ff285337e2c813b8b7
parent8656383c44f2080e59c526ff3b7fb7ac4c2301a9 (diff)
downloadtxr-b25e08a3328ffa4bf29a8a8651973d88ae79b90c.tar.gz
txr-b25e08a3328ffa4bf29a8a8651973d88ae79b90c.tar.bz2
txr-b25e08a3328ffa4bf29a8a8651973d88ae79b90c.zip
New function to access slot list of struct type.
* struct.c (slots): New function. * struct.h (slots): Declared.
-rw-r--r--struct.c6
-rw-r--r--struct.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/struct.c b/struct.c
index 559dbb0e..54631098 100644
--- a/struct.c
+++ b/struct.c
@@ -1085,6 +1085,12 @@ val static_slot_p(val type, val sym)
return nil;
}
+val slots(val stype)
+{
+ struct struct_type *st = stype_handle(&stype, lit("static-slot-p"));
+ return st->slots;
+}
+
val structp(val obj)
{
return tnil(cobjp(obj) && obj->co.ops == &struct_inst_ops);
diff --git a/struct.h b/struct.h
index 2e3d32cb..384c4755 100644
--- a/struct.h
+++ b/struct.h
@@ -47,6 +47,7 @@ val static_slot_set(val stype, val sym, val newval);
val static_slot_ensure(val stype, val sym, val newval, val no_error_p);
val slotp(val type, val sym);
val static_slot_p(val type, val sym);
+val slots(val stype);
val structp(val obj);
val struct_type(val strct);
val method(val strct, val slotsym);