From b225e4cc82f0e727b6175306e530efc2a59f4e95 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 15 Aug 2013 01:33:36 +0900 Subject: redesign mruby/data.h API; use DATA_PTR() for raw data pointer, DATA_GET_PTR() to type safe retrieval (TypeError will be raised), DATA_CHECK_GET_PTR() to get nil if type mismatched --- include/mruby/data.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby/data.h b/include/mruby/data.h index f76dd395f..8a790f074 100644 --- a/include/mruby/data.h +++ b/include/mruby/data.h @@ -39,7 +39,12 @@ struct RData *mrb_data_object_alloc(mrb_state *mrb, struct RClass* klass, void * #define DATA_TYPE(d) (RDATA(d)->type) void mrb_data_check_type(mrb_state *mrb, mrb_value, const mrb_data_type*); void *mrb_data_get_ptr(mrb_state *mrb, mrb_value, const mrb_data_type*); -void *mrb_data_check_and_get(mrb_state *mrb, mrb_value, const mrb_data_type*); +#define DATA_GET_PTR(mrb,obj,dtype,type) (type*)mrb_data_get_ptr(mrb,obj,dtype) +void *mrb_data_check_get_ptr(mrb_state *mrb, mrb_value, const mrb_data_type*); +#define DATA_CHECK_GET_PTR(mrb,obj,dtype,type) (type*)mrb_data_check_get_ptr(mrb,obj,dtype) + +/* obsolete functions and macros */ +#define mrb_data_check_and_get(mrb,obj,dtype) mrb_data_get_ptr(mrb,obj,dtype) #define mrb_get_datatype(mrb,val,type) mrb_data_get_ptr(mrb, val, type) #define mrb_check_datatype(mrb,val,type) mrb_data_check_and_get(mrb, val, type) #define Data_Get_Struct(mrb,obj,type,sval) do {\ -- cgit v1.2.3