diff --git a/src/builtins/search.c b/src/builtins/search.c index 8467552d..3385873f 100644 --- a/src/builtins/search.c +++ b/src/builtins/search.c @@ -82,7 +82,7 @@ B indexOf_c2(B t, B w, B x) { } else { u8 we = TI(w,elType); usz wia = IA(w); u8 xe = TI(x,elType); usz xia = IA(x); - if (wia == 0) { decG(w); decG(x); return taga(arr_shVec(allZeroes(xia))); } + if (wia == 0) { B r=taga(arr_shCopy(allZeroes(xia), x)); decG(w); decG(x); return r; } if (we==el_bit) { u64* wp = bitarr_ptr(w); u64 w0 = 1 & wp[0]; @@ -149,7 +149,7 @@ B memberOf_c2(B t, B w, B x) { many: { u8 we = TI(w,elType); usz wia = IA(w); u8 xe = TI(x,elType); usz xia = IA(x); - if (xia == 0) { r=taga(arr_shVec(allZeroes(wia))); decG(w); goto dec_x; } + if (xia == 0) { r=taga(arr_shCopy(allZeroes(wia), w)); decG(w); goto dec_x; } #define WEQ(V) C2(eq, incG(w), V) if (xe==el_bit) { u64* xp = bitarr_ptr(x);