summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-08-06 16:38:38 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-09-26 12:55:22 +0900
commite8dcfe17454eb88f266f90cf31ca562e30378291 (patch)
treec9f0c7f285e028b3d741926d9cfc7f8ad6ea78d9 /include
parent01c2f59e14d8483ab1dc9dc8b06d3a42f0ecc88e (diff)
downloadmruby-e8dcfe17454eb88f266f90cf31ca562e30378291.tar.gz
mruby-e8dcfe17454eb88f266f90cf31ca562e30378291.zip
Use segmented list to implement `Hash` [Experimental]
I know it's not hash at all, but reduce memory consumption.
Diffstat (limited to 'include')
-rw-r--r--include/mruby/hash.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/include/mruby/hash.h b/include/mruby/hash.h
index 449a7d4bc..dacdd9376 100644
--- a/include/mruby/hash.h
+++ b/include/mruby/hash.h
@@ -18,7 +18,7 @@ MRB_BEGIN_DECL
struct RHash {
MRB_OBJECT_HEADER;
struct iv_tbl *iv;
- struct kh_ht *ht;
+ struct seglist *ht;
};
#define mrb_hash_ptr(v) ((struct RHash*)(mrb_ptr(v)))
@@ -76,7 +76,7 @@ MRB_API mrb_value mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key);
*
* Equivalent to:
*
- * hash.hash_key?(key) ? hash[key] : def
+ * hash.key?(key) ? hash[key] : def
*
* @param mrb The mruby state reference.
* @param hash The target hash.
@@ -199,7 +199,6 @@ KHASH_DECLARE(ht, mrb_value, mrb_hash_value, TRUE)
#define RHASH_TBL(h) (RHASH(h)->ht)
#define RHASH_IFNONE(h) mrb_iv_get(mrb, (h), mrb_intern_lit(mrb, "ifnone"))
#define RHASH_PROCDEFAULT(h) RHASH_IFNONE(h)
-MRB_API struct kh_ht * mrb_hash_tbl(mrb_state *mrb, mrb_value hash);
#define MRB_HASH_DEFAULT 1
#define MRB_HASH_PROC_DEFAULT 2