summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorcrimsonwoods <[email protected]>2012-06-19 23:00:29 +0900
committercrimsonwoods <[email protected]>2012-06-19 23:00:29 +0900
commitcd68190480785430b8e350d9a5d2127ab04e1074 (patch)
tree7eadae1a18883d9a3e99fc84da49b2d35c02fd3c /src
parent7744315d88ceea6cb4e233506ba9b97693b68569 (diff)
downloadmruby-cd68190480785430b8e350d9a5d2127ab04e1074.tar.gz
mruby-cd68190480785430b8e350d9a5d2127ab04e1074.zip
split declaration and definition for 'khash_xxx'.
Diffstat (limited to 'src')
-rw-r--r--src/class.c3
-rw-r--r--src/hash.c3
-rw-r--r--src/kernel.c3
-rw-r--r--src/khash.c5
-rw-r--r--src/symbol.c3
-rw-r--r--src/variable.c2
6 files changed, 9 insertions, 10 deletions
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)
{