From cd68190480785430b8e350d9a5d2127ab04e1074 Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Tue, 19 Jun 2012 23:00:29 +0900 Subject: split declaration and definition for 'khash_xxx'. --- src/class.c | 3 --- src/hash.c | 3 ++- src/kernel.c | 3 --- src/khash.c | 5 +++++ src/symbol.c | 3 ++- src/variable.c | 2 -- 6 files changed, 9 insertions(+), 10 deletions(-) create mode 100644 src/khash.c (limited to 'src') diff --git a/src/class.c b/src/class.c index df02a832a..434ecb037 100644 --- a/src/class.c +++ b/src/class.c @@ -17,9 +17,6 @@ #include "mruby/khash.h" -KHASH_INIT(mt, mrb_sym, struct RProc*, 1, kh_int_hash_func, kh_int_hash_equal) -KHASH_INIT(iv, mrb_sym, mrb_value, 1, kh_int_hash_func, kh_int_hash_equal) - typedef struct fc_result { mrb_sym name; struct RClass * klass; diff --git a/src/hash.c b/src/hash.c index fe5336dc1..08f906800 100644 --- a/src/hash.c +++ b/src/hash.c @@ -31,7 +31,8 @@ mrb_hash_ht_hash_equal(mrb_state *mrb, mrb_value a, mrb_value b) return mrb_eql(mrb, a, b); } -KHASH_INIT(ht, mrb_value, mrb_value, 1, mrb_hash_ht_hash_func, mrb_hash_ht_hash_equal); +KHASH_DECLARE(ht, mrb_value, mrb_value, 1); +KHASH_DEFINE (ht, mrb_value, mrb_value, 1, mrb_hash_ht_hash_func, mrb_hash_ht_hash_equal); static void mrb_hash_modify(mrb_state *mrb, mrb_value hash); diff --git a/src/kernel.c b/src/kernel.c index b5bde628a..75c588a81 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -34,9 +34,6 @@ typedef enum { NOEX_RESPONDS = 0x80 } mrb_method_flag_t; -KHASH_INIT(mt, mrb_sym, struct RProc*, 1, kh_int_hash_func, kh_int_hash_equal) -KHASH_INIT(iv, mrb_sym, mrb_value, 1, kh_int_hash_func, kh_int_hash_equal) - struct obj_ivar_tag { mrb_value obj; int (*func)(mrb_sym key, mrb_value val, void * arg); diff --git a/src/khash.c b/src/khash.c new file mode 100644 index 000000000..7ea09cfe7 --- /dev/null +++ b/src/khash.c @@ -0,0 +1,5 @@ +#include "mruby/khash.h" + +KHASH_DEFINE(mt, mrb_sym, struct RProc*, 1, kh_int_hash_func, kh_int_hash_equal) +KHASH_DEFINE(iv, mrb_sym, mrb_value, 1, kh_int_hash_func, kh_int_hash_equal) + diff --git a/src/symbol.c b/src/symbol.c index b80174e7b..d2ae09655 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -36,7 +36,8 @@ sym_hash_func(mrb_state *mrb, const symbol_name s) } #define sym_hash_equal(mrb,a, b) (a.len == b.len && memcmp(a.name, b.name, a.len) == 0) -KHASH_INIT(n2s, symbol_name, mrb_sym, 1, sym_hash_func, sym_hash_equal) +KHASH_DECLARE(n2s, symbol_name, mrb_sym, 1) +KHASH_DEFINE (n2s, symbol_name, mrb_sym, 1, sym_hash_func, sym_hash_equal) /* ------------------------------------------------------ */ mrb_sym mrb_intern2(mrb_state *mrb, const char *name, int len) diff --git a/src/variable.c b/src/variable.c index b11143b02..d89e9d6bb 100644 --- a/src/variable.c +++ b/src/variable.c @@ -19,8 +19,6 @@ #include "st.h" #endif -KHASH_INIT(iv, mrb_sym, mrb_value, 1, kh_int_hash_func, kh_int_hash_equal) - static void mark_tbl(mrb_state *mrb, struct kh_iv *h) { -- cgit v1.2.3