fix unshare on heap-allocated atoms
This commit is contained in:
parent
b2259d77c1
commit
41c9a51ff3
@ -231,8 +231,8 @@ static NOINLINE B unshareShape(Arr* x) {
|
||||
arr_shReplace(x, xr, sh);
|
||||
return taga(x);
|
||||
}
|
||||
static B unshare(B x) {
|
||||
if (!isArr(x)) return x;
|
||||
static B unshare(B x) { // doesn't consume
|
||||
if (!isArr(x)) return inc(x);
|
||||
usz xia = IA(x);
|
||||
switch (TY(x)) {
|
||||
case t_bitarr: return unshareShape((Arr*)cpyBitArr(incG(x)));
|
||||
|
||||
@ -413,5 +413,6 @@ a←⋈"Ai32"•internal.Variation ↕10 ⋄ •internal.Type ⊑•internal.Dee
|
||||
•internal.ClearRefs@ ⋄ •internal.Variation⟜(↕10)¨ 10⥊<"Ai32Inc" ⋄ •internal.ClearRefs "foo" %% 10
|
||||
# •internal.Unshare
|
||||
•internal.Refc∘•internal.Unshare¨ ⟨↕0, "", ⟨⟩, ↕10⟩ %% 1‿1‿1‿1
|
||||
⟨a⟩‿b‿c ← •internal.Unshare ⟨{a⇐↕2},"hi",3⟩ ⋄ a‿b‿c %% ⟨0‿1, "hi", 3⟩
|
||||
# •internal.EEqual
|
||||
%USE nan ⋄ a←1⌽nans∾•ParseFloat¨"0"‿"1.2"‿"-0" ⋄ a •internal.EEqual ⌽a %% 1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user