summaryrefslogtreecommitdiffhomepage
path: root/src/pool.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pool.h')
-rw-r--r--src/pool.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/pool.h b/src/pool.h
new file mode 100644
index 000000000..4f0b906a5
--- /dev/null
+++ b/src/pool.h
@@ -0,0 +1,19 @@
+#include "mruby.h"
+#include <stddef.h>
+
+typedef struct mrb_pool {
+ mrb_state *mrb;
+ struct mrb_pool_page {
+ struct mrb_pool_page *next;
+ size_t offset;
+ size_t len;
+ void *last;
+ char page[1];
+ } *pages;
+} mrb_pool;
+
+mrb_pool* mrb_pool_open(mrb_state*);
+void mrb_pool_close(mrb_pool*);
+void* mrb_pool_alloc(mrb_pool*, size_t);
+void* mrb_pool_realloc(mrb_pool*, void*, size_t oldlen, size_t newlen);
+int mrb_pool_can_realloc(mrb_pool*, void*, size_t);