better fix for in-place 𝔽¨𝕩 on fillslice 𝕩
This commit is contained in:
parent
927814d182
commit
b4a207a924
@ -77,7 +77,15 @@ B eachm_fn(B fo, B x, BB2B f) {
|
||||
case t_fillslice: {
|
||||
FillSlice* s = c(FillSlice,x);
|
||||
Arr* p = s->p;
|
||||
if (p->refc==1 && (p->type==t_fillarr || p->type==t_harr) && ((FillArr*)p)->a == s->a && ptr_eqShape(p, a(x))) {
|
||||
if (p->refc==1 && (p->type==t_fillarr || p->type==t_harr) && ((FillArr*)p)->a == s->a && PIA(p)==ia) {
|
||||
ur sr = PRNK(s);
|
||||
if (sr<=1) {
|
||||
arr_shErase(p, sr);
|
||||
} else {
|
||||
usz* ssh = PSH(s);
|
||||
if (ssh != PSH(p)) arr_shReplace(p, sr, ptr_inc(shObjS(ssh)));
|
||||
}
|
||||
|
||||
x = taga(ptr_inc(p));
|
||||
value_free((Value*)s);
|
||||
goto re_reuse;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user