use reflexive match for (2‿3⥊0÷0)⌾(0‿0⊸⊏) 2‿3⥊1 fix
This commit is contained in:
parent
d1855f14e9
commit
b0877bfad9
@ -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_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_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_c32: rep = toC32Any(rep); ra = reuse? a(REUSE(x)) : cpyC32Arr(x); goto do_u32;
|
||||||
case el_f64: if (csz!=1) { reuse = false; goto generic; }
|
case el_f64: rep = toF64Any(rep); ra = reuse? a(REUSE(x)) : cpyF64Arr(x); goto do_f64;
|
||||||
rep = toF64Any(rep); ra = reuse? a(REUSE(x)) : cpyF64Arr(x); goto do_f64;
|
|
||||||
case el_bit: { ra = reuse? a(REUSE(x)) : cpyBitArr(x);
|
case el_bit: { ra = reuse? a(REUSE(x)) : cpyBitArr(x);
|
||||||
TyArr* na = toBitArr(rep); rep = taga(na);
|
TyArr* na = toBitArr(rep); rep = taga(na);
|
||||||
u64* np = bitarrv_ptr(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;
|
goto dec_ret_ra;
|
||||||
}
|
}
|
||||||
case el_B: {
|
case el_B: {
|
||||||
generic:;
|
|
||||||
ra = reuse? a(REUSE(x)) : cpyHArr(x);
|
ra = reuse? a(REUSE(x)) : cpyHArr(x);
|
||||||
B* rp = harrv_ptr(ra);
|
B* rp = harrv_ptr(ra);
|
||||||
SGet(rep)
|
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 cwidth = csz * elWidth(re);
|
||||||
u8* rp = (u8*) tyarrv_ptr((TyArr*)ra);
|
u8* rp = (u8*) tyarrv_ptr((TyArr*)ra);
|
||||||
u8* np = tyany_ptr(rep);
|
u8* np = tyany_ptr(rep);
|
||||||
MatchFnObj eq = MATCH_GET(re,re);
|
MatchFnObj eq = MATCHR_GET(re,re);
|
||||||
for (usz i = 0; i < wia; i++) {
|
for (usz i = 0; i < wia; i++) {
|
||||||
READ_W(cw, i);
|
READ_W(cw, i);
|
||||||
EQ1(!MATCH_CALL(eq, rp + cw*cwidth, np + i*cwidth, csz));
|
EQ1(!MATCH_CALL(eq, rp + cw*cwidth, np + i*cwidth, csz));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user