about summary refs log tree commit diff
path: root/src/rt/rust_obstack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rt/rust_obstack.cpp')
-rw-r--r--src/rt/rust_obstack.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rt/rust_obstack.cpp b/src/rt/rust_obstack.cpp
index 342310d4b5c..9300ec49073 100644
--- a/src/rt/rust_obstack.cpp
+++ b/src/rt/rust_obstack.cpp
@@ -58,6 +58,14 @@ rust_obstack::alloc_new(size_t len) {
     return chunk->alloc(len);
 }
 
+rust_obstack::~rust_obstack() {
+    while (chunk) {
+        rust_obstack_chunk *prev = chunk->prev;
+        task->free(chunk);
+        chunk = prev;
+    }
+}
+
 void *
 rust_obstack::alloc(size_t len) {
     if (!chunk)