summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authortake_cheeze <[email protected]>2014-08-20 22:42:35 +0900
committertake_cheeze <[email protected]>2014-08-20 22:42:35 +0900
commitb3d0585fe5e437633e13c12029d715721ab3a3e5 (patch)
treea67825797db6fdd20742ac8e654ef378b49c9d54 /include
parentf6f31a8ecd7e8f9f9830f050842e11d2aaef94a1 (diff)
downloadmruby-b3d0585fe5e437633e13c12029d715721ab3a3e5.tar.gz
mruby-b3d0585fe5e437633e13c12029d715721ab3a3e5.zip
Add API `mrb_data_init` to initialize `MRB_TT_DATA` tagged instance.
Diffstat (limited to 'include')
-rw-r--r--include/mruby/data.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/mruby/data.h b/include/mruby/data.h
index 8a62d23db..d457e3722 100644
--- a/include/mruby/data.h
+++ b/include/mruby/data.h
@@ -51,6 +51,14 @@ MRB_API void *mrb_data_check_get_ptr(mrb_state *mrb, mrb_value, const mrb_data_t
*(void**)&sval = mrb_data_get_ptr(mrb, obj, type); \
} while (0)
+static inline void
+mrb_data_init(mrb_value v, void *ptr, const mrb_data_type *type)
+{
+ mrb_assert(mrb_type(v) == MRB_TT_DATA);
+ DATA_PTR(v) = ptr;
+ DATA_TYPE(v) = type;
+}
+
#if defined(__cplusplus)
} /* extern "C" { */
#endif