diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2009-12-09 20:17:53 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2009-12-09 20:17:53 -0800 |
commit | 440ed64162b328a51a911f2586c16513c2cfed67 (patch) | |
tree | cc6618d931585cbed81df544e35b2368c77e55e7 | |
parent | 08ee01ea9e6bd1bedd565f9e0e1c1a8938710887 (diff) | |
download | txr-440ed64162b328a51a911f2586c16513c2cfed67.tar.gz txr-440ed64162b328a51a911f2586c16513c2cfed67.tar.bz2 txr-440ed64162b328a51a911f2586c16513c2cfed67.zip |
* hash.c (sethash): New function.
* hash.h (sethash): Declared.
* lib.c (cobj_handle): New function.
* lib.h (cobj_handle): Declared.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | hash.c | 7 | ||||
-rw-r--r-- | hash.h | 1 | ||||
-rw-r--r-- | lib.c | 6 | ||||
-rw-r--r-- | lib.h | 1 |
5 files changed, 25 insertions, 0 deletions
@@ -1,3 +1,13 @@ +2009-12-09 Kaz Kylheku <kkylheku@gmail.com> + + * hash.c (sethash): New function. + + * hash.h (sethash): Declared. + + * lib.c (cobj_handle): New function. + + * lib.h (cobj_handle): Declared. + 2009-12-08 Kaz Kylheku <kkylheku@gmail.com> All COBJ operations have default implementations now; @@ -258,6 +258,13 @@ val gethash(val hash, val key) return cdr(found); } +val sethash(val hash, val key, val value) +{ + val new_p; + *gethash_l(hash, key, &new_p) = value; + return new_p; +} + val remhash(val hash, val key) { struct hash *h = (struct hash *) hash->co.handle; @@ -28,6 +28,7 @@ val hash_obj(val); val make_hash(val weak_keys, val weak_vals); val *gethash_l(val hash, val key, val *new_p); val gethash(val hash, val key); +val sethash(val hash, val key, val value); val remhash(val hash, val key); void hash_process_weak(void); @@ -1644,6 +1644,12 @@ val cobj(mem_t *handle, val cls_sym, struct cobj_ops *ops) return obj; } +mem_t *cobj_handle(val cobj, val cls_sym) +{ + class_check(cobj, cls_sym); + return cobj->co.handle; +} + void cobj_print_op(val obj, val out) { put_string(out, lit("#<")); @@ -356,6 +356,7 @@ val length_str_ge(val str, val len); val length_str_lt(val str, val len); val length_str_le(val str, val len); val cobj(mem_t *handle, val cls_sym, struct cobj_ops *ops); +mem_t *cobj_handle(val cobj, val cls_sym); val assoc(val list, val key); val acons_new(val list, val key, val value); val *acons_new_l(val *list, val key, val *new_p); |