diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-08-16 06:38:26 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-08-16 06:38:26 -0700 |
commit | f7833712f1ff318e19cb8c041f1dcef5e9488350 (patch) | |
tree | 3d7a586b077cc3d639f6aa622908fb2821a0b2f2 | |
parent | 05d55b8e42f7326b234f74f6114157f1990ac7da (diff) | |
download | txr-f7833712f1ff318e19cb8c041f1dcef5e9488350.tar.gz txr-f7833712f1ff318e19cb8c041f1dcef5e9488350.tar.bz2 txr-f7833712f1ff318e19cb8c041f1dcef5e9488350.zip |
buf: provide way to work with on-stack buffers.
* buf.c (init_borrowed_buf): New function.
(make_borrowed_buf): Reduced to wrapper around
init_borrowed_buf.
* buf.h (init_borrowed_buf): Declared.
-rw-r--r-- | buf.c | 9 | ||||
-rw-r--r-- | buf.h | 1 |
2 files changed, 7 insertions, 3 deletions
@@ -102,10 +102,8 @@ val bufp(val object) return tnil(type(object) == BUF); } -val make_borrowed_buf(val len, mem_t *data) +val init_borrowed_buf(obj_t *obj, val len, mem_t *data) { - val obj = make_obj(); - obj->b.type = BUF; obj->b.data = data; obj->b.len = len; @@ -114,6 +112,11 @@ val make_borrowed_buf(val len, mem_t *data) return obj; } +val make_borrowed_buf(val len, mem_t *data) +{ + return init_borrowed_buf(make_obj(), len, data); +} + val make_duplicate_buf(val len, mem_t *data) { val obj = make_obj(); @@ -28,6 +28,7 @@ val make_buf(val len, val init_val, val alloc_size); val bufp(val object); val make_borrowed_buf(val len, mem_t *data); +val init_borrowed_buf(obj_t *buf, val len, mem_t *data); val make_duplicate_buf(val len, mem_t *data); val buf_trim(val buf); val buf_set_length(val obj, val len, val init_val); |