hash.c (mrb_hash_aset): avoid slower mrb_get_args()

This commit is contained in:
Yukihiro "Matz" Matsumoto
2023-08-26 22:30:20 +09:00
parent 0578e518e6
commit b85b6822b2
+9 -3
View File
@@ -1564,10 +1564,16 @@ mrb_hash_clear(mrb_state *mrb, mrb_value hash)
static mrb_value
mrb_hash_aset(mrb_state *mrb, mrb_value self)
{
mrb_value key, val;
mrb_int argc = mrb_get_argc(mrb);
mrb_get_args(mrb, "oo", &key, &val);
mrb_hash_set(mrb, self, key, val);
if (argc != 2) {
mrb_argnum_error(mrb, argc, 2, 2);
}
const mrb_value *argv = mrb_get_argv(mrb);
mrb_value val = argv[1];
mrb_hash_set(mrb, self, argv[0], argv[1]);
return val;
}