diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-06-07 01:18:17 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-06-07 01:18:17 +0900 |
| commit | 1a369de4897eb4764c30146d56761444beb5b46c (patch) | |
| tree | 5a105be788e0d32d37e1507cdece1a2c21b00264 | |
| parent | 4c01f002fdd234aa0a03f1eeb3c216b9638ea170 (diff) | |
| download | mruby-1a369de4897eb4764c30146d56761444beb5b46c.tar.gz mruby-1a369de4897eb4764c30146d56761444beb5b46c.zip | |
remove src/gc.h
| -rw-r--r-- | include/mruby/class.h | 4 | ||||
| -rw-r--r-- | include/mruby/hash.h | 5 | ||||
| -rw-r--r-- | include/mruby/variable.h | 7 | ||||
| -rw-r--r-- | src/gc.c | 25 | ||||
| -rw-r--r-- | src/gc.h | 54 |
5 files changed, 40 insertions, 55 deletions
diff --git a/include/mruby/class.h b/include/mruby/class.h index 0afd331b0..28365ee58 100644 --- a/include/mruby/class.h +++ b/include/mruby/class.h @@ -78,6 +78,10 @@ struct RClass* mrb_class_real(struct RClass* cl); void mrb_obj_call_init(mrb_state *mrb, mrb_value obj, int argc, mrb_value *argv); +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*); + #if defined(__cplusplus) } /* extern "C" { */ #endif diff --git a/include/mruby/hash.h b/include/mruby/hash.h index 369decdb4..e7162c3ab 100644 --- a/include/mruby/hash.h +++ b/include/mruby/hash.h @@ -42,6 +42,11 @@ struct kh_ht * mrb_hash_tbl(mrb_state *mrb, mrb_value hash); mrb_value mrb_obj_is_proc(mrb_value proc); +/* GC functions */ +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*); + #if defined(__cplusplus) } /* extern "C" { */ #endif diff --git a/include/mruby/variable.h b/include/mruby/variable.h index 400dd50b0..fb686fd47 100644 --- a/include/mruby/variable.h +++ b/include/mruby/variable.h @@ -48,6 +48,13 @@ mrb_value mrb_f_global_variables(mrb_state *mrb, mrb_value self); mrb_value mrb_gv_get(mrb_state *mrb, mrb_sym sym); void mrb_gv_set(mrb_state *mrb, mrb_sym sym, mrb_value val); +/* GC functions */ +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*); + #if defined(__cplusplus) } /* extern "C" { */ #endif @@ -18,6 +18,7 @@ #include "mruby/proc.h" #include "mruby/data.h" #include "mruby/numeric.h" +#include "mruby/variable.h" /* = Tri-color Incremental Garbage Collection @@ -74,7 +75,29 @@ #include "re.h" #endif -#include "gc.h" +struct free_obj { + MRUBY_OBJECT_HEADER; + struct RBasic *next; +}; + +typedef struct { + union { + struct free_obj 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; #ifdef GC_PROFILE #include <sys/time.h> diff --git a/src/gc.h b/src/gc.h deleted file mode 100644 index fea761d1b..000000000 --- a/src/gc.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -** gc.h - garbage collector for RiteVM -** -** See Copyright Notice in mruby.h -*/ - -#ifndef MRUBY_GC_H -#define MRUBY_GC_H - -#if defined(__cplusplus) -extern "C" { -#endif - -struct free_obj { - MRUBY_OBJECT_HEADER; - struct RBasic *next; -}; - -typedef struct { - union { - struct free_obj 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*); - -#if defined(__cplusplus) -} /* extern "C" { */ -#endif - -#endif /* MRUBY_GC_H */ |
