summaryrefslogtreecommitdiffhomepage
path: root/include/mruby.h
diff options
context:
space:
mode:
authormirichi <[email protected]>2013-07-06 08:31:01 +0900
committermirichi <[email protected]>2013-07-06 08:31:01 +0900
commitc3e81aca651100e40a03494c9fcc7b8e84302b0a (patch)
treee7256423448ca4f42f9e11f98bc8881829fd32bb /include/mruby.h
parenta01845b502a902ee1de2f34645177e64fafbb551 (diff)
parentd4b8fdd7a56ac17064bfcce75df25f100b4a407c (diff)
downloadmruby-c3e81aca651100e40a03494c9fcc7b8e84302b0a.tar.gz
mruby-c3e81aca651100e40a03494c9fcc7b8e84302b0a.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'include/mruby.h')
-rw-r--r--include/mruby.h29
1 files changed, 16 insertions, 13 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 33a15de0e..dd555eb8b 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -73,15 +73,15 @@ enum mrb_fiber_state {
struct mrb_context {
struct mrb_context *prev;
- mrb_value *stack;
+ mrb_value *stack; /* stack of virtual machine */
mrb_value *stbase, *stend;
mrb_callinfo *ci;
mrb_callinfo *cibase, *ciend;
- mrb_code **rescue;
+ mrb_code **rescue; /* exception handler stack */
int rsize;
- struct RProc **ensure;
+ struct RProc **ensure; /* ensure handler stack */
int esize;
uint8_t status;
@@ -97,19 +97,19 @@ enum gc_state {
typedef struct mrb_state {
void *jmp;
- mrb_allocf allocf;
+ mrb_allocf allocf; /* memory allocation function */
struct mrb_context *c;
struct mrb_context *root_c;
- struct RObject *exc;
- struct iv_tbl *globals;
- struct mrb_irep **irep;
+ struct RObject *exc; /* exception */
+ struct iv_tbl *globals; /* global variable table */
+ struct mrb_irep **irep; /* program data array */
size_t irep_len, irep_capa;
mrb_sym init_sym;
struct RObject *top_self;
- struct RClass *object_class;
+ struct RClass *object_class; /* Object class */
struct RClass *class_class;
struct RClass *module_class;
struct RClass *proc_class;
@@ -125,11 +125,11 @@ typedef struct mrb_state {
struct RClass *symbol_class;
struct RClass *kernel_module;
- struct heap_page *heaps;
+ struct heap_page *heaps; /* heaps for GC */
struct heap_page *sweeps;
struct heap_page *free_heaps;
size_t live; /* count of live objects */
- struct RBasic *arena[MRB_ARENA_SIZE];
+ struct RBasic *arena[MRB_ARENA_SIZE]; /* GC protection array */
int arena_idx;
enum gc_state gc_state; /* state of gc */
@@ -178,6 +178,7 @@ struct RClass * mrb_class_new(mrb_state *mrb, struct RClass *super);
struct RClass * mrb_module_new(mrb_state *mrb);
int mrb_class_defined(mrb_state *mrb, const char *name);
struct RClass * mrb_class_get(mrb_state *mrb, const char *name);
+struct RClass * mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name);
mrb_value mrb_obj_dup(mrb_state *mrb, mrb_value obj);
mrb_value mrb_check_to_integer(mrb_state *mrb, mrb_value val, const char *method);
@@ -239,9 +240,11 @@ mrb_sym mrb_intern(mrb_state *mrb,const char *cstr)
return mrb_intern_cstr(mrb, cstr);
}
-void *mrb_malloc(mrb_state*, size_t);
-void *mrb_calloc(mrb_state*, size_t, size_t);
-void *mrb_realloc(mrb_state*, void*, size_t);
+void *mrb_malloc(mrb_state*, size_t); /* raise RuntimeError if no mem */
+void *mrb_calloc(mrb_state*, size_t, size_t); /* ditto */
+void *mrb_realloc(mrb_state*, void*, size_t); /* ditto */
+void *mrb_realloc_simple(mrb_state*, void*, size_t); /* return NULL if no memory available */
+void *mrb_malloc_simple(mrb_state*, size_t); /* return NULL if no memory available */
struct RBasic *mrb_obj_alloc(mrb_state*, enum mrb_vtype, struct RClass*);
void mrb_free(mrb_state*, void*);