/* ** gc.h - garbage collector for RiteVM ** ** See Copyright Notice in mruby.h */ #ifndef MRUBY_GC_H #define MRUBY_GC_H typedef struct { union { struct free_obj { MRUBY_OBJECT_HEADER; struct RBasic *next; } free; struct RBasic basic; struct RObject object; struct RClass klass; struct RString string; struct RArray array; struct RHash hash; struct RRange range; struct RStruct structdata; struct RProc procdata; #ifdef INCLUDE_REGEXP struct RMatch match; struct RRegexp regexp; #endif } as; } RVALUE; void mrb_gc_mark_gv(mrb_state*); void mrb_gc_free_gv(mrb_state*); void mrb_gc_mark_iv(mrb_state*, struct RObject*); size_t mrb_gc_mark_iv_size(mrb_state*, struct RObject*); void mrb_gc_free_iv(mrb_state*, struct RObject*); void mrb_gc_mark_mt(mrb_state*, struct RClass*); size_t mrb_gc_mark_mt_size(mrb_state*, struct RClass*); void mrb_gc_free_mt(mrb_state*, struct RClass*); void mrb_gc_mark_ht(mrb_state*, struct RHash*); size_t mrb_gc_mark_ht_size(mrb_state*, struct RHash*); void mrb_gc_free_ht(mrb_state*, struct RHash*); #endif /* MRUBY_GC_H */