mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
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
This commit is contained in:
@@ -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 {\
|
||||
|
||||
Reference in New Issue
Block a user