From 2459e79b8080c168e1764045072e5bc6d5694303 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Wed, 21 Aug 2024 11:53:19 -0400 Subject: [PATCH] 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. --- array.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/array.c b/array.c index 149b73dbc4..e3fad2fc0b 100644 --- a/array.c +++ b/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); }