summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-struct/src
diff options
context:
space:
mode:
authordearblue <[email protected]>2020-10-22 22:55:35 +0900
committerdearblue <[email protected]>2020-10-22 22:55:35 +0900
commitf0a64329b1cb8156e0d525d003e5d6ff03b7832f (patch)
tree0f7cfdcfb3af7fb51fcc9e4c60aba736ca10d5d1 /mrbgems/mruby-struct/src
parent27492e53a0440aee7c411d5e72b6f092cf85d6a1 (diff)
downloadmruby-f0a64329b1cb8156e0d525d003e5d6ff03b7832f.tar.gz
mruby-f0a64329b1cb8156e0d525d003e5d6ff03b7832f.zip
Prohibit array changes by "a"/"*" specifier of `mrb_get_args()`
The "a"/"*" specifier of the `mrb_get_args()` function will now return `const mrb_value *`. This is because it is difficult for the caller to check if it is an array object and write-barrier if necessary. And it requires calling `mrb_ary_modify()` on the unmodified array object, which is also difficult (this is similar to #5087).
Diffstat (limited to 'mrbgems/mruby-struct/src')
-rw-r--r--mrbgems/mruby-struct/src/struct.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c
index 7c6f50090..c64a494a5 100644
--- a/mrbgems/mruby-struct/src/struct.c
+++ b/mrbgems/mruby-struct/src/struct.c
@@ -262,12 +262,12 @@ static mrb_value
mrb_struct_s_def(mrb_state *mrb, mrb_value klass)
{
mrb_value name, rest;
- mrb_value *pargv;
+ const mrb_value *pargv;
mrb_int argcnt;
mrb_int i;
mrb_value b, st;
mrb_sym id;
- mrb_value *argv;
+ const mrb_value *argv;
mrb_int argc;
name = mrb_nil_value();
@@ -321,7 +321,7 @@ num_members(mrb_state *mrb, struct RClass *klass)
/*
*/
static mrb_value
-mrb_struct_initialize_withArg(mrb_state *mrb, mrb_int argc, mrb_value *argv, mrb_value self)
+mrb_struct_initialize_withArg(mrb_state *mrb, mrb_int argc, const mrb_value *argv, mrb_value self)
{
struct RClass *klass = mrb_obj_class(mrb, self);
mrb_int i, n;
@@ -343,7 +343,7 @@ mrb_struct_initialize_withArg(mrb_state *mrb, mrb_int argc, mrb_value *argv, mrb
static mrb_value
mrb_struct_initialize(mrb_state *mrb, mrb_value self)
{
- mrb_value *argv;
+ const mrb_value *argv;
mrb_int argc;
mrb_get_args(mrb, "*!", &argv, &argc);
@@ -646,7 +646,7 @@ static mrb_value
mrb_struct_values_at(mrb_state *mrb, mrb_value self)
{
mrb_int argc;
- mrb_value *argv;
+ const mrb_value *argv;
mrb_get_args(mrb, "*", &argv, &argc);