summaryrefslogtreecommitdiffhomepage
path: root/src/pool.h
diff options
context:
space:
mode:
authormimaki <[email protected]>2012-04-20 09:39:03 +0900
committermimaki <[email protected]>2012-04-20 09:39:03 +0900
commite0d6430f63c4cbe0c71ce82ee23284671389a818 (patch)
tree41abad7f12eced98d9ac14d141cea62464c3332f /src/pool.h
parent54ad561098ed353ada70205c39b2c42a2a2eb9e5 (diff)
downloadmruby-e0d6430f63c4cbe0c71ce82ee23284671389a818.tar.gz
mruby-e0d6430f63c4cbe0c71ce82ee23284671389a818.zip
add mruby sources
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);