summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-01-07 12:46:38 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-01-07 12:46:38 +0900
commit725b3ca5a74023947d10049eb54576163a781098 (patch)
tree19c3d032644490d9d67b8a1f89fca37339042944
parent7c82bfa7fe17ef7b44d55f058bb4be14eb7e62e0 (diff)
downloadmruby-725b3ca5a74023947d10049eb54576163a781098.tar.gz
mruby-725b3ca5a74023947d10049eb54576163a781098.zip
move KHASH_DECLARE(ht..) to mruby/hash.h; close #3073
-rw-r--r--include/mruby/hash.h10
-rw-r--r--src/hash.c6
2 files changed, 10 insertions, 6 deletions
diff --git a/include/mruby/hash.h b/include/mruby/hash.h
index 1d00a33ab..21366c459 100644
--- a/include/mruby/hash.h
+++ b/include/mruby/hash.h
@@ -8,6 +8,7 @@
#define MRUBY_HASH_H
#include "common.h"
+#include <mruby/khash.h>
/**
* Hash class
@@ -59,6 +60,15 @@ MRB_API mrb_value mrb_hash_empty_p(mrb_state *mrb, mrb_value self);
*/
MRB_API mrb_value mrb_hash_clear(mrb_state *mrb, mrb_value hash);
+/* declaration of struct kh_ht */
+/* be careful when you touch the internal */
+typedef struct {
+ mrb_value v;
+ mrb_int n;
+} mrb_hash_value;
+
+KHASH_DECLARE(ht, mrb_value, mrb_hash_value, TRUE)
+
/* RHASH_TBL allocates st_table if not available. */
#define RHASH(obj) ((struct RHash*)(mrb_ptr(obj)))
#define RHASH_TBL(h) (RHASH(h)->ht)
diff --git a/src/hash.c b/src/hash.c
index ac7256987..7712cd467 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -91,12 +91,6 @@ mrb_hash_ht_hash_equal(mrb_state *mrb, mrb_value a, mrb_value b)
}
}
-typedef struct {
- mrb_value v;
- mrb_int n;
-} mrb_hash_value;
-
-KHASH_DECLARE(ht, mrb_value, mrb_hash_value, TRUE)
KHASH_DEFINE (ht, mrb_value, mrb_hash_value, TRUE, mrb_hash_ht_hash_func, mrb_hash_ht_hash_equal)
static void mrb_hash_modify(mrb_state *mrb, mrb_value hash);