diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 2833983e..ac95a0ff 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -103,7 +103,7 @@ B select_c2(B t, B w, B x) { i32* xp = i32any_ptr(x); for (usz i = 0; i < wia; i++) { i64 c = wp[i]; - if (c<0) c+= xia; if ((u64)c >= xia) thrF("โŠ: Indexing out-of-bounds (%iโˆŠ๐•จ, %sโ‰กโ‰ ๐•ฉ)", wp[i], xia); + if (RARE((u64)c >= xia)) { if (c<0) c+= xia; if ((u64)c >= xia)thrF("โŠ: Indexing out-of-bounds (%iโˆŠ๐•จ, %sโ‰กโ‰ ๐•ฉ)", wp[i], xia); } rp[i] = xp[c]; } dec(w); dec(x); @@ -113,7 +113,7 @@ B select_c2(B t, B w, B x) { u32* xp = c32any_ptr(x); for (usz i = 0; i < wia; i++) { i64 c = wp[i]; - if (c<0) c+= xia; if ((u64)c >= xia) thrF("โŠ: Indexing out-of-bounds (%iโˆŠ๐•จ, %sโ‰กโ‰ ๐•ฉ)", wp[i], xia); + if (RARE((u64)c >= xia)) { if (c<0) c+= xia; if ((u64)c >= xia)thrF("โŠ: Indexing out-of-bounds (%iโˆŠ๐•จ, %sโ‰กโ‰ ๐•ฉ)", wp[i], xia); } rp[i] = xp[c]; } dec(w); dec(x); @@ -122,7 +122,7 @@ B select_c2(B t, B w, B x) { HArr_p r = m_harrUc(w); for (usz i = 0; i < wia; i++) { i64 c = wp[i]; - if (c<0) c+= xia; if ((u64)c >= xia) thrF("โŠ: Indexing out-of-bounds (%iโˆŠ๐•จ, %sโ‰กโ‰ ๐•ฉ)", wp[i], xia); + if (RARE((u64)c >= xia)) { if (c<0) c+= xia; if ((u64)c >= xia)thrF("โŠ: Indexing out-of-bounds (%iโˆŠ๐•จ, %sโ‰กโ‰ ๐•ฉ)", wp[i], xia); } r.a[i] = xget(x, c); } dec(w); dec(x);