From f0a64329b1cb8156e0d525d003e5d6ff03b7832f Mon Sep 17 00:00:00 2001 From: dearblue Date: Thu, 22 Oct 2020 22:55:35 +0900 Subject: 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). --- mrbgems/mruby-fiber/src/fiber.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mrbgems/mruby-fiber') diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c index 00ee7c223..41fda9eed 100644 --- a/mrbgems/mruby-fiber/src/fiber.c +++ b/mrbgems/mruby-fiber/src/fiber.c @@ -255,7 +255,7 @@ fiber_switch(mrb_state *mrb, mrb_value self, mrb_int len, const mrb_value *a, mr static mrb_value fiber_resume(mrb_state *mrb, mrb_value self) { - mrb_value *a; + const mrb_value *a; mrb_int len; mrb_bool vmexec = FALSE; @@ -315,7 +315,7 @@ static mrb_value fiber_transfer(mrb_state *mrb, mrb_value self) { struct mrb_context *c = fiber_check(mrb, self); - mrb_value* a; + const mrb_value* a; mrb_int len; fiber_check_cfunc(mrb, mrb->c); @@ -374,7 +374,7 @@ mrb_fiber_yield(mrb_state *mrb, mrb_int len, const mrb_value *a) static mrb_value fiber_yield(mrb_state *mrb, mrb_value self) { - mrb_value *a; + const mrb_value *a; mrb_int len; mrb_get_args(mrb, "*!", &a, &len); -- cgit v1.2.3