From b0877bfad9fb864653e3c41395e24ea3b8170a96 Mon Sep 17 00:00:00 2001 From: dzaima Date: Thu, 22 May 2025 23:57:58 +0300 Subject: [PATCH] =?UTF-8?q?use=20reflexive=20match=20for=20`(2=E2=80=BF3?= =?UTF-8?q?=E2=A5=8A0=C3=B70)=E2=8C=BE(0=E2=80=BF0=E2=8A=B8=E2=8A=8F)=202?= =?UTF-8?q?=E2=80=BF3=E2=A5=8A1`=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/select.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/builtins/select.c b/src/builtins/select.c index 0e0e5796..e096868b 100644 --- a/src/builtins/select.c +++ b/src/builtins/select.c @@ -509,8 +509,7 @@ B select_replace(u32 chr, B w, B x, B rep, usz wia, usz cam, usz csz) { // consu case el_c16: rep = toC16Any(rep); ra = reuse? a(REUSE(x)) : cpyC16Arr(x); goto do_u16; case el_i32: rep = toI32Any(rep); ra = reuse? a(REUSE(x)) : cpyI32Arr(x); goto do_u32; case el_c32: rep = toC32Any(rep); ra = reuse? a(REUSE(x)) : cpyC32Arr(x); goto do_u32; - case el_f64: if (csz!=1) { reuse = false; goto generic; } - rep = toF64Any(rep); ra = reuse? a(REUSE(x)) : cpyF64Arr(x); goto do_f64; + case el_f64: rep = toF64Any(rep); ra = reuse? a(REUSE(x)) : cpyF64Arr(x); goto do_f64; case el_bit: { ra = reuse? a(REUSE(x)) : cpyBitArr(x); TyArr* na = toBitArr(rep); rep = taga(na); u64* np = bitarrv_ptr(na); @@ -532,7 +531,6 @@ B select_replace(u32 chr, B w, B x, B rep, usz wia, usz cam, usz csz) { // consu goto dec_ret_ra; } case el_B: { - generic:; ra = reuse? a(REUSE(x)) : cpyHArr(x); B* rp = harrv_ptr(ra); SGet(rep) @@ -581,7 +579,7 @@ B select_replace(u32 chr, B w, B x, B rep, usz wia, usz cam, usz csz) { // consu u8 cwidth = csz * elWidth(re); u8* rp = (u8*) tyarrv_ptr((TyArr*)ra); u8* np = tyany_ptr(rep); - MatchFnObj eq = MATCH_GET(re,re); + MatchFnObj eq = MATCHR_GET(re,re); for (usz i = 0; i < wia; i++) { READ_W(cw, i); EQ1(!MATCH_CALL(eq, rp + cw*cwidth, np + i*cwidth, csz));