summaryrefslogtreecommitdiffstats
path: root/buf.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-08-16 06:38:26 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-08-16 06:38:26 -0700
commitf7833712f1ff318e19cb8c041f1dcef5e9488350 (patch)
tree3d7a586b077cc3d639f6aa622908fb2821a0b2f2 /buf.c
parent05d55b8e42f7326b234f74f6114157f1990ac7da (diff)
downloadtxr-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.
Diffstat (limited to 'buf.c')
-rw-r--r--buf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/buf.c b/buf.c
index 6d3f1a04..b97bef41 100644
--- a/buf.c
+++ b/buf.c
@@ -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();