From f7833712f1ff318e19cb8c041f1dcef5e9488350 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 16 Aug 2017 06:38:26 -0700 Subject: 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. --- buf.c | 9 ++++++--- buf.h | 1 + 2 files changed, 7 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(); diff --git a/buf.h b/buf.h index 28978472..ce06cf40 100644 --- a/buf.h +++ b/buf.h @@ -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); -- cgit v1.2.3