summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-06-05 14:28:18 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-06-05 14:28:18 +0900
commit6a96bc46d1c17c7208882c8c7d4a15c5a8157d81 (patch)
tree82cf60a137141136c085c704f53e54cddc0a0786 /include
parentcbbed40295d8ed7cbf51f0e5bd0b7747a9b2c295 (diff)
parenta763d1149062347377c696074f5f8cf2d813c814 (diff)
downloadmruby-6a96bc46d1c17c7208882c8c7d4a15c5a8157d81.tar.gz
mruby-6a96bc46d1c17c7208882c8c7d4a15c5a8157d81.zip
git push origin masterMerge branch 'take-cheeze-atexit'
Diffstat (limited to 'include')
-rw-r--r--include/mruby.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/mruby.h b/include/mruby.h
index e2054f440..04ef018cb 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -102,6 +102,8 @@ enum gc_state {
struct mrb_jmpbuf;
+typedef void (*mrb_atexit_func)(struct mrb_state*);
+
typedef struct mrb_state {
struct mrb_jmpbuf *jmp;
@@ -170,6 +172,9 @@ typedef struct mrb_state {
struct RObject *nomem_err; /* pre-allocated NoMemoryError */
void *ud; /* auxiliary data */
+
+ mrb_atexit_func *atexit_stack;
+ mrb_int atexit_stack_len;
} mrb_state;
#if __STDC_VERSION__ >= 201112L
@@ -414,6 +419,8 @@ void* mrb_pool_realloc(struct mrb_pool*, void*, size_t oldlen, size_t newlen);
mrb_bool mrb_pool_can_realloc(struct mrb_pool*, void*, size_t);
void* mrb_alloca(mrb_state *mrb, size_t);
+void mrb_atexit(mrb_state *mrb, mrb_atexit_func func);
+
#ifdef MRB_DEBUG
#include <assert.h>
#define mrb_assert(p) assert(p)