summaryrefslogtreecommitdiffhomepage
path: root/src/etc.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-05-05 08:55:58 +0900
committerYukihiro Matsumoto <[email protected]>2012-05-05 08:55:58 +0900
commite0460c1157b8ee4ac0cfc620c399e5e3764cf935 (patch)
treeaf6d190baefcbfec6210582655e306b1f13f5ce3 /src/etc.c
parentc9a51c43bc32cdd684a0e1b64e6a8bc8dba5d70e (diff)
downloadmruby-e0460c1157b8ee4ac0cfc620c399e5e3764cf935.tar.gz
mruby-e0460c1157b8ee4ac0cfc620c399e5e3764cf935.zip
hash refactored
Diffstat (limited to 'src/etc.c')
-rw-r--r--src/etc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/etc.c b/src/etc.c
index c7e8391cf..eac71459c 100644
--- a/src/etc.c
+++ b/src/etc.c
@@ -31,6 +31,18 @@ mrb_data_object_alloc(mrb_state *mrb, struct RClass *klass, void *ptr, const str
}
void *
+mrb_get_datatype(mrb_state *mrb, mrb_value obj, const struct mrb_data_type *type)
+{
+ if (SPECIAL_CONST_P(obj) || (mrb_type(obj) != MRB_TT_DATA)) {
+ return NULL;
+ }
+ if (DATA_TYPE(obj) != type) {
+ return NULL;
+ }
+ return DATA_PTR(obj);
+}
+
+void *
mrb_check_datatype(mrb_state *mrb, mrb_value obj, const struct mrb_data_type *type)
{
static const char mesg[] = "wrong argument type %s (expected %s)";