summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorskandhas <[email protected]>2013-01-10 17:02:41 +0800
committerskandhas <[email protected]>2013-01-10 17:02:41 +0800
commit1a528da40b25a1c492f5433e4a7b6d3e4ad6740f (patch)
tree06b34f766d027ba6b5166da8ce88b500173e0533
parent27bce63b62ef54ad3701d7ee4cf484cae7e012a4 (diff)
downloadmruby-1a528da40b25a1c492f5433e4a7b6d3e4ad6740f.tar.gz
mruby-1a528da40b25a1c492f5433e4a7b6d3e4ad6740f.zip
add mrb_check_hash_type
-rw-r--r--include/mruby/hash.h1
-rw-r--r--src/hash.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/include/mruby/hash.h b/include/mruby/hash.h
index bb12962ca..acb9de93b 100644
--- a/include/mruby/hash.h
+++ b/include/mruby/hash.h
@@ -29,6 +29,7 @@ mrb_value mrb_hash_fetch(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_valu
mrb_value mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key);
mrb_value mrb_hash(mrb_state *mrb, mrb_value obj);
mrb_value mrb_hash_keys(mrb_state *mrb, mrb_value hash);
+mrb_value mrb_check_hash_type(mrb_state *mrb, mrb_value hash);
/* RHASH_TBL allocates st_table if not available. */
#define RHASH(obj) ((struct RHash*)((obj).value.p))
diff --git a/src/hash.c b/src/hash.c
index c7a419250..26d9b78b0 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -187,6 +187,12 @@ mrb_hash_modify_check(mrb_state *mrb, mrb_value hash)
//if (OBJ_FROZEN(hash)) mrb_error_frozen("hash");
}
+mrb_value
+mrb_check_hash_type(mrb_state *mrb, mrb_value hash)
+{
+ return mrb_check_convert_type(mrb, hash, MRB_TT_HASH, "Hash", "to_hash");
+}
+
khash_t(ht) *
mrb_hash_tbl(mrb_state *mrb, mrb_value hash)
{