summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-08-14 07:54:18 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-12 16:21:39 +0900
commitd4b89ccc61a28d59b484ba20aced9daf5a699bc2 (patch)
tree9f75ee3270a394932442a80517db67c3d264f547
parent72d071540ce5bc249ebd986596eb7c3db77e0bfb (diff)
downloadmruby-d4b89ccc61a28d59b484ba20aced9daf5a699bc2.tar.gz
mruby-d4b89ccc61a28d59b484ba20aced9daf5a699bc2.zip
Add assertion we can pack function pointers in `mrb_method_t`.
If this assertion fails, you have to define `MRB_USE_METHOD_T_STRUCT`.
-rw-r--r--src/class.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c
index 0e443da90..455a1b4e1 100644
--- a/src/class.c
+++ b/src/class.c
@@ -521,6 +521,9 @@ mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t f
int ai = mrb_gc_arena_save(mrb);
MRB_METHOD_FROM_FUNC(m, func);
+#ifndef MRB_USE_METHOD_T_STRUCT
+ mrb_assert(MRB_METHOD_FUNC(m) == func);
+#endif
if (aspec == MRB_ARGS_NONE()) {
MRB_METHOD_NOARG_SET(m);
}