summaryrefslogtreecommitdiffhomepage
path: root/src/pool.h
blob: 4f0b906a551a2c03f79f162a308de2d8ee576336 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);