mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
ary_dup() should not use `ary_replace(); fix #4004
Otherwise the duplicated object may have shared entities that should not be modified in-line.
This commit is contained in:
+1
-5
@@ -684,11 +684,7 @@ mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value val)
|
||||
static struct RArray*
|
||||
ary_dup(mrb_state *mrb, struct RArray *a)
|
||||
{
|
||||
mrb_int len = ARY_LEN(a);
|
||||
struct RArray *d = ary_new_capa(mrb, len);
|
||||
|
||||
ary_replace(mrb, d, a);
|
||||
return d;
|
||||
return ary_new_from_values(mrb, ARY_LEN(a), ARY_PTR(a));
|
||||
}
|
||||
|
||||
MRB_API mrb_value
|
||||
|
||||
Reference in New Issue
Block a user