Assume that shared array is not embedded
An array cannot be shared and embedded at the same time, so we can assume that a shared array is not embedded.
This commit is contained in:
parent
87fa75c5db
commit
2459e79b80
Notes:
git
2024-08-27 13:58:57 +00:00
10
array.c
10
array.c
@ -4657,11 +4657,9 @@ rb_ary_clear(VALUE ary)
|
||||
{
|
||||
rb_ary_modify_check(ary);
|
||||
if (ARY_SHARED_P(ary)) {
|
||||
if (!ARY_EMBED_P(ary)) {
|
||||
rb_ary_unshare(ary);
|
||||
FL_SET_EMBED(ary);
|
||||
ARY_SET_EMBED_LEN(ary, 0);
|
||||
}
|
||||
rb_ary_unshare(ary);
|
||||
FL_SET_EMBED(ary);
|
||||
ARY_SET_EMBED_LEN(ary, 0);
|
||||
}
|
||||
else {
|
||||
ARY_SET_LEN(ary, 0);
|
||||
@ -6235,7 +6233,7 @@ rb_ary_uniq_bang(VALUE ary)
|
||||
}
|
||||
rb_ary_modify_check(ary);
|
||||
ARY_SET_LEN(ary, 0);
|
||||
if (ARY_SHARED_P(ary) && !ARY_EMBED_P(ary)) {
|
||||
if (ARY_SHARED_P(ary)) {
|
||||
rb_ary_unshare(ary);
|
||||
FL_SET_EMBED(ary);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user