From 743d480fba801cdfdea61427017be781262dca54 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 16 Sep 2019 09:07:34 +0900 Subject: Refactor `mrb_method_t`. --- include/mruby.h | 2 +- include/mruby/proc.h | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/mruby.h b/include/mruby.h index 6fed041d6..2db11c52f 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -192,7 +192,7 @@ typedef mrb_value (*mrb_func_t)(struct mrb_state *mrb, mrb_value self); typedef uintptr_t mrb_method_t; #else typedef struct { - mrb_bool func_p; + uint8_t flags; union { struct RProc *proc; mrb_func_t func; diff --git a/include/mruby/proc.h b/include/mruby/proc.h index f6e887163..9b2cbc6fc 100644 --- a/include/mruby/proc.h +++ b/include/mruby/proc.h @@ -110,10 +110,11 @@ MRB_API mrb_value mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx); #else -#define MRB_METHOD_FUNC_P(m) ((m).func_p) +#define MRB_METHOD_FUNC_FL 1 +#define MRB_METHOD_FUNC_P(m) ((m).flags&MRB_METHOD_FUNC_FL) #define MRB_METHOD_FUNC(m) ((m).func) -#define MRB_METHOD_FROM_FUNC(m,fn) do{(m).func_p=TRUE;(m).func=(fn);}while(0) -#define MRB_METHOD_FROM_PROC(m,pr) do{(m).func_p=FALSE;(m).proc=(pr);}while(0) +#define MRB_METHOD_FROM_FUNC(m,fn) do{(m).flags=MRB_METHOD_FUNC_FL;(m).func=(fn);}while(0) +#define MRB_METHOD_FROM_PROC(m,pr) do{(m).flags=0;(m).proc=(pr);}while(0) #define MRB_METHOD_PROC_P(m) (!MRB_METHOD_FUNC_P(m)) #define MRB_METHOD_PROC(m) ((m).proc) #define MRB_METHOD_UNDEF_P(m) ((m).proc==NULL) -- cgit v1.2.3