fix memory leak in 𝔽⌾(is⊸⊏) highRank
This commit is contained in:
parent
cc0462aa53
commit
1c20f3eac5
@ -475,8 +475,9 @@ B select_replace(u32 chr, B w, B x, B rep, usz wia, usz cam, usz csz) { // consu
|
||||
MAKE_MUT(r, cam*csz);
|
||||
mut_init_copy(r, x, re);
|
||||
NOGC_E;
|
||||
MUTG_INIT(r); SGet(rep)
|
||||
MUTG_INIT(r);
|
||||
if (csz==1) {
|
||||
SGet(rep)
|
||||
for (usz i = 0; i < wia; i++) {
|
||||
READ_W(cw, i);
|
||||
B cn = Get(rep, i);
|
||||
@ -485,9 +486,10 @@ B select_replace(u32 chr, B w, B x, B rep, usz wia, usz cam, usz csz) { // consu
|
||||
mut_setG(r, cw, cn);
|
||||
}
|
||||
} else {
|
||||
SGetU(rep)
|
||||
for (usz i = 0; i < wia; i++) {
|
||||
READ_W(cw, i);
|
||||
EQ(for (usz j = 0; j < csz; j++), !compatible(mut_getU(r, cw*csz + j), Get(rep, i*csz + j)));
|
||||
EQ(for (usz j = 0; j < csz; j++), !compatible(mut_getU(r, cw*csz + j), GetU(rep, i*csz + j)));
|
||||
for (usz j = 0; j < csz; j++) mut_rm(r, cw*csz + j);
|
||||
mut_copyG(r, cw*csz, rep, i*csz, csz);
|
||||
}
|
||||
@ -533,8 +535,8 @@ B select_replace(u32 chr, B w, B x, B rep, usz wia, usz cam, usz csz) { // consu
|
||||
case el_B: {
|
||||
ra = reuse? a(REUSE(x)) : cpyHArr(x);
|
||||
B* rp = harrv_ptr(ra);
|
||||
SGet(rep)
|
||||
if (csz==1) {
|
||||
SGet(rep)
|
||||
for (usz i = 0; i < wia; i++) {
|
||||
READ_W(cw, i);
|
||||
B cn = Get(rep, i);
|
||||
@ -543,9 +545,10 @@ B select_replace(u32 chr, B w, B x, B rep, usz wia, usz cam, usz csz) { // consu
|
||||
rp[cw] = cn;
|
||||
}
|
||||
} else {
|
||||
SGetU(rep)
|
||||
for (usz i = 0; i < wia; i++) {
|
||||
READ_W(cw, i);
|
||||
EQ(for (usz j = 0; j < csz; j++), !compatible(Get(rep, i*csz + j), rp[cw*csz + j]));
|
||||
EQ(for (usz j = 0; j < csz; j++), !compatible(GetU(rep, i*csz + j), rp[cw*csz + j]));
|
||||
for (usz j = 0; j < csz; j++) dec(rp[cw*csz + j]);
|
||||
COPY_TO(rp, el_B, cw*csz, rep, i*csz, csz);
|
||||
}
|
||||
|
||||
@ -115,6 +115,10 @@ n←500 ⋄ a←↕n ⋄ i←(-n)+↕2×n ⋄ r←⌽(2×n)⥊a ⋄ ! (⌽a) ≡
|
||||
%USE eqvar ⋄ (<⟨⟩) {•internal.Keep⌾(𝕨⊸⊏) 𝕩}_eqvar¨ ⟨0‿1, "ab"‿"cd"⟩ %% ⟨0‿1, "ab"‿"cd"⟩
|
||||
%USE eqvar ⋄ ⟨0÷0,0÷0⟩ {𝕨⌾(0‿0⊸⊏) 𝕩}_eqvar 3⥊0 %% ⟨0÷0,0,0⟩
|
||||
%USE eqvar ⋄ %USE nz ⋄ 0‿0 {(0 InsNZ 2⥊0)⌾(𝕨⊸⊏)𝕩}_eqvar 3⥊3 %% 0‿3‿3
|
||||
%USE eqvar ⋄ "CD" {𝕨¨⌾(2‿3‿2‿3‿4⊸⊏) 𝕩}_eqvar 10⥊<"ab" %% "ab"‿"ab"‿"CD"‿"CD"‿"CD"‿"ab"‿"ab"‿"ab"‿"ab"‿"ab"
|
||||
%USE eqvar ⋄ "CD" {𝕨¨⌾(2‿3‿2‿1⊸⊏) 𝕩}_eqvar 5‿2⥊<"ab" %% ≍˜˘ "ab"‿"CD"‿"CD"‿"CD"‿"ab"
|
||||
%USE eqvar ⋄ 2‿3‿2‿1 {( 32⊸+⊸≍˘ "AB"‿"CD"‿"AB"‿"EF")⌾(𝕨⊸⊏) 𝕩}_eqvar 5‿2⥊<"?" %% 5‿2⥊⟨"?","?","ef","EF","ab","AB","cd","CD","?","?"⟩
|
||||
%USE eqvar ⋄ 2‿3‿2‿1 {{𝕊: 32⊸+⊸≍˘ "AB"‿"CD"‿"AB"‿"EF"}⌾(𝕨⊸⊏) 𝕩}_eqvar 5‿2⥊<"?" %% 5‿2⥊⟨"?","?","ef","EF","ab","AB","cd","CD","?","?"⟩
|
||||
|
||||
|
||||
# ⥊
|
||||
|
||||
Loading…
Reference in New Issue
Block a user