summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-01-12 14:50:25 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-01-12 14:51:34 +0900
commita8b8d316ab80b7cf569d6bc9cb8ba993a4e6c8bc (patch)
tree6974c8636b83ad83d84b25f1154cb3d0dfd7db20 /include
parente1c9e7efab7cd49a6d0033c566e97a118c42b863 (diff)
downloadmruby-a8b8d316ab80b7cf569d6bc9cb8ba993a4e6c8bc.tar.gz
mruby-a8b8d316ab80b7cf569d6bc9cb8ba993a4e6c8bc.zip
Save `NOARG` information in `struct mt_elem`; fix #5257
Diffstat (limited to 'include')
-rw-r--r--include/mruby/proc.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/mruby/proc.h b/include/mruby/proc.h
index f8681b40b..25f4822bc 100644
--- a/include/mruby/proc.h
+++ b/include/mruby/proc.h
@@ -105,7 +105,7 @@ MRB_API mrb_value mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx);
#ifndef MRB_USE_METHOD_T_STRUCT
#define MRB_METHOD_FUNC_P(m) (((uintptr_t)(m))&MRB_METHOD_FUNC_FL)
-#define MRB_METHOD_NOARG_P(m) (((uintptr_t)(m))&MRB_METHOD_NOARG_FL)
+#define MRB_METHOD_NOARG_P(m) ((((uintptr_t)(m))&MRB_METHOD_NOARG_FL)?1:0)
#define MRB_METHOD_NOARG_SET(m) ((m)=(mrb_method_t)(((uintptr_t)(m))|MRB_METHOD_NOARG_FL))
#define MRB_METHOD_FUNC(m) ((mrb_func_t)((uintptr_t)(m)>>2))
#define MRB_METHOD_FROM_FUNC(m,fn) ((m)=(mrb_method_t)((((uintptr_t)(fn))<<2)|MRB_METHOD_FUNC_FL))
@@ -117,7 +117,7 @@ MRB_API mrb_value mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx);
#else
#define MRB_METHOD_FUNC_P(m) ((m).flags&MRB_METHOD_FUNC_FL)
-#define MRB_METHOD_NOARG_P(m) ((m).flags&MRB_METHOD_NOARG_FL)
+#define MRB_METHOD_NOARG_P(m) (((m).flags&MRB_METHOD_NOARG_FL)?1:0)
#define MRB_METHOD_FUNC(m) ((m).func)
#define MRB_METHOD_NOARG_SET(m) do{(m).flags|=MRB_METHOD_NOARG_FL;}while(0)
#define MRB_METHOD_FROM_FUNC(m,fn) do{(m).flags=MRB_METHOD_FUNC_FL;(m).func=(fn);}while(0)