fix use-after-free in a⌾(i⊸/)𝕩

not actually ever problematic I believe as `w` in *_ucw always happens to have other held references, but still a bug and could become problematic in the future;
and the change is actually an improvement, bringing the SGetU computation out of paths that don't need it!
This commit is contained in:
dzaima 2025-05-22 01:15:03 +03:00
parent 04d0191d1f
commit 3b5497e329

View File

@ -1068,7 +1068,6 @@ B slash_ucw(B t, B o, B w, B x) {
return def_fn_ucw(t, o, w, x);
}
usz ia = IA(x);
SGetU(w)
u8 we = TI(w,elType);
if (we != el_bit) {
w = squeeze_numTry(w, &we);
@ -1188,7 +1187,7 @@ B slash_ucw(B t, B o, B w, B x) {
mut_fillG(r, 0, m_f64(0), ia);
NOGC_E;
}
SGetU(rep)
SGetU(w) SGetU(rep)
for (usz i = 0; i < ia; i++) {
ux cw = o2u64G(GetU(w, i));
if (cw) {