From 898d1ff11ee7608916df6bff8f644133eb92b236 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 1 Apr 2024 07:33:28 +0900 Subject: [PATCH] proc.h: simplify method macros; ref #6220 - MRB_METHOD_CFUNC_P: reduce ternary; use logical-or instead - MRB_METHOD_CFUNC: assume MRB_METHOD_CFUNC_P check before call --- include/mruby/proc.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/mruby/proc.h b/include/mruby/proc.h index f6ee64d93..952f52912 100644 --- a/include/mruby/proc.h +++ b/include/mruby/proc.h @@ -116,8 +116,9 @@ MRB_API mrb_value mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx); #define MRB_METHOD_PROC(m) ((m).proc) #define MRB_METHOD_UNDEF_P(m) ((m).proc==NULL) -#define MRB_METHOD_CFUNC_P(m) (MRB_METHOD_FUNC_P(m)?TRUE:(MRB_METHOD_PROC(m)?(MRB_PROC_CFUNC_P(MRB_METHOD_PROC(m))):FALSE)) -#define MRB_METHOD_CFUNC(m) (MRB_METHOD_FUNC_P(m)?MRB_METHOD_FUNC(m):((MRB_METHOD_PROC(m)&&MRB_PROC_CFUNC_P(MRB_METHOD_PROC(m)))?MRB_PROC_CFUNC(MRB_METHOD_PROC(m)):NULL)) +#define MRB_METHOD_CFUNC_P(m) (MRB_METHOD_FUNC_P(m) || (MRB_METHOD_PROC(m)?(MRB_PROC_CFUNC_P(MRB_METHOD_PROC(m))):FALSE)) +/* use MRB_METHOD_CFUNC(m) only when MRB_METHOD_CFUNC_P(m) is true */ +#define MRB_METHOD_CFUNC(m) (MRB_METHOD_FUNC_P(m)?MRB_METHOD_FUNC(m):MRB_PROC_CFUNC(MRB_METHOD_PROC(m))) MRB_API mrb_value mrb_load_proc(mrb_state *mrb, const struct RProc *proc);