summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-method/src/method.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-10-23 15:43:18 +0900
committerGitHub <[email protected]>2020-10-23 15:43:18 +0900
commit17247c51f2e713b89d84ea329bae83b71f14a431 (patch)
treee69229c79156bb32e1cfa084b1a063e38c65116d /mrbgems/mruby-method/src/method.c
parentfd38b9217dbb1b4357d8973848babd7ba3f25696 (diff)
parentf0a64329b1cb8156e0d525d003e5d6ff03b7832f (diff)
downloadmruby-17247c51f2e713b89d84ea329bae83b71f14a431.tar.gz
mruby-17247c51f2e713b89d84ea329bae83b71f14a431.zip
Merge pull request #5099 from dearblue/getargs-array
Prohibit array changes by "a"/"*" specifier of `mrb_get_args()`
Diffstat (limited to 'mrbgems/mruby-method/src/method.c')
-rw-r--r--mrbgems/mruby-method/src/method.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/mrbgems/mruby-method/src/method.c b/mrbgems/mruby-method/src/method.c
index c6de6a7bd..0a2897847 100644
--- a/mrbgems/mruby-method/src/method.c
+++ b/mrbgems/mruby-method/src/method.c
@@ -109,7 +109,7 @@ method_eql(mrb_state *mrb, mrb_value self)
static mrb_value
mcall(mrb_state *mrb, mrb_value recv, mrb_value proc, mrb_value name, struct RClass *owner,
- mrb_int argc, mrb_value *argv, mrb_value block)
+ mrb_int argc, const mrb_value *argv, mrb_value block)
{
mrb_value ret;
mrb_sym orig_mid = mrb->c->ci->mid;
@@ -142,7 +142,8 @@ method_call(mrb_state *mrb, mrb_value self)
mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
struct RClass *owner = mrb_class_ptr(mrb_iv_get(mrb, self, MRB_SYM(_owner)));
mrb_int argc;
- mrb_value *argv, block;
+ const mrb_value *argv;
+ mrb_value block;
mrb_get_args(mrb, "*&", &argv, &argc, &block);
return mcall(mrb, recv, proc, name, owner, argc, argv, block);
@@ -156,7 +157,8 @@ method_bcall(mrb_state *mrb, mrb_value self)
mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
mrb_int argc;
- mrb_value *argv, block;
+ const mrb_value *argv;
+ mrb_value block;
mrb_get_args(mrb, "o*&", &recv, &argv, &argc, &block);
bind_check(mrb, recv, owner);