fix fill of n↑fillarr
This commit is contained in:
parent
e38e4f89ae
commit
f50b8ab503
@ -11,8 +11,9 @@ static Arr* take_impl(usz ria, B x) { // consumes x; returns v↑⥊𝕩 without
|
|||||||
MAKE_MUT(r, ria); mut_init(r, TI(x,elType));
|
MAKE_MUT(r, ria); mut_init(r, TI(x,elType));
|
||||||
mut_copyG(r, 0, x, 0, xia);
|
mut_copyG(r, 0, x, 0, xia);
|
||||||
mut_fill(r, xia, xf, ria-xia);
|
mut_fill(r, xia, xf, ria-xia);
|
||||||
dec(x); dec(xf);
|
dec(x);
|
||||||
return mut_fp(r);
|
if (r->type!=el_B) { dec(xf); return mut_fp(r); }
|
||||||
|
return a(withFill(mut_fv(r), xf));
|
||||||
} else {
|
} else {
|
||||||
return TI(x,slice)(x,0,ria);
|
return TI(x,slice)(x,0,ria);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -57,10 +57,10 @@ static void mut_init(Mut* m, u8 n) {
|
|||||||
void mut_to(Mut* m, u8 n);
|
void mut_to(Mut* m, u8 n);
|
||||||
|
|
||||||
static B mut_fv(Mut* m) { assert(m->type!=el_MAX);
|
static B mut_fv(Mut* m) { assert(m->type!=el_MAX);
|
||||||
m->val->sh = &m->val->ia;
|
Arr* a = m->val;
|
||||||
B r = taga(m->val);
|
a->sh = &a->ia;
|
||||||
srnk(r, 1);
|
sprnk(a, 1);
|
||||||
return r;
|
return taga(a);
|
||||||
}
|
}
|
||||||
static B mut_fc(Mut* m, B x) { assert(m->type!=el_MAX);
|
static B mut_fc(Mut* m, B x) { assert(m->type!=el_MAX);
|
||||||
Arr* a = m->val;
|
Arr* a = m->val;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user