diff options
| author | dearblue <[email protected]> | 2020-10-22 22:55:35 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2020-10-22 22:55:35 +0900 |
| commit | f0a64329b1cb8156e0d525d003e5d6ff03b7832f (patch) | |
| tree | 0f7cfdcfb3af7fb51fcc9e4c60aba736ca10d5d1 /mrbgems/mruby-hash-ext/src/hash-ext.c | |
| parent | 27492e53a0440aee7c411d5e72b6f092cf85d6a1 (diff) | |
| download | mruby-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-hash-ext/src/hash-ext.c')
| -rw-r--r-- | mrbgems/mruby-hash-ext/src/hash-ext.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mrbgems/mruby-hash-ext/src/hash-ext.c b/mrbgems/mruby-hash-ext/src/hash-ext.c index 75ebd412b..16e066c73 100644 --- a/mrbgems/mruby-hash-ext/src/hash-ext.c +++ b/mrbgems/mruby-hash-ext/src/hash-ext.c @@ -22,7 +22,8 @@ static mrb_value hash_values_at(mrb_state *mrb, mrb_value hash) { - mrb_value *argv, result; + const mrb_value *argv; + mrb_value result; mrb_int argc, i; int ai; @@ -49,7 +50,8 @@ hash_values_at(mrb_state *mrb, mrb_value hash) static mrb_value hash_slice(mrb_state *mrb, mrb_value hash) { - mrb_value *argv, result; + const mrb_value *argv; + mrb_value result; mrb_int argc, i; mrb_get_args(mrb, "*", &argv, &argc); |
