diff --git a/src/builtins/select.c b/src/builtins/select.c index 320964a3..1716403f 100644 --- a/src/builtins/select.c +++ b/src/builtins/select.c @@ -19,7 +19,7 @@ B select_c1(B t, B x) { usz ia = shProd(a(x)->sh, 1, xr); Arr* r = TI(x,slice)(inc(x), 0, ia); usz* sh = arr_shAlloc(r, xr-1); - if (sh) for (i32 i = 1; i < xr; i++) sh[i-1] = a(x)->sh[i]; + if (sh) shcpy(sh, a(x)->sh+1, xr-1); decG(x); return taga(r); } diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 13aed77a..fbec6833 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -716,7 +716,7 @@ B take_c2(B t, B w, B x) { } else { usz* rsh = arr_shAlloc(a, xr); // xr>1, don't have to worry about 0 rsh[0] = wv<0?-wv:wv; - for (i32 i = 1; i < xr; i++) rsh[i] = xsh[i]; + shcpy(rsh+1, xsh+1, xr-1); ptr_dec(shObjS(xsh)); } return taga(a);