summaryrefslogtreecommitdiffstats
path: root/buf.c
diff options
context:
space:
mode:
Diffstat (limited to 'buf.c')
-rw-r--r--buf.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/buf.c b/buf.c
index 07322788..cc3bcda6 100644
--- a/buf.c
+++ b/buf.c
@@ -227,6 +227,19 @@ val buf_set_length(val buf, val len, val init_val)
return buf_do_set_len(buf, b, len, init_val, self);
}
+val buf_free(val buf)
+{
+ val self = lit("buf-free");
+ struct buf *b = buf_handle(buf, self);
+ if (b->size) {
+ free(b->data);
+ b->data = 0;
+ b->len = b->size = zero;
+ return t;
+ }
+ return nil;
+}
+
val length_buf(val buf)
{
val self = lit("length-buf");