diff options
| author | Mel <einebeere@gmail.com> | 2022-08-29 20:30:10 +0000 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-08-29 20:40:44 +0000 |
| commit | 1bc5eb0d13bb001b4ac7f456c6a61fedcd53f0c8 (patch) | |
| tree | 336f8eb7e3e49cf647eec3abc4be18412bc0f684 /pkg/lang/vm/mem | |
| parent | 1f5a49151fc2f72932eedf8162b63af670556910 (diff) | |
| download | jinx-1bc5eb0d13bb001b4ac7f456c6a61fedcd53f0c8.tar.zst jinx-1bc5eb0d13bb001b4ac7f456c6a61fedcd53f0c8.zip | |
Stop ignoring val.Drop and val.Clone memory errors
Diffstat (limited to 'pkg/lang/vm/mem')
| -rw-r--r-- | pkg/lang/vm/mem/cell.go | 2 | ||||
| -rw-r--r-- | pkg/lang/vm/mem/mem.go | 4 | ||||
| -rw-r--r-- | pkg/lang/vm/mem/mem_test.go | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/pkg/lang/vm/mem/cell.go b/pkg/lang/vm/mem/cell.go index 85d6c34..0a5e80c 100644 --- a/pkg/lang/vm/mem/cell.go +++ b/pkg/lang/vm/mem/cell.go @@ -49,6 +49,6 @@ type cell struct { } type CellData interface { - DropCell(Mem) + DropCell(Mem) error MatchingCellKind() CellKind } diff --git a/pkg/lang/vm/mem/mem.go b/pkg/lang/vm/mem/mem.go index 99412ea..b590bcc 100644 --- a/pkg/lang/vm/mem/mem.go +++ b/pkg/lang/vm/mem/mem.go @@ -144,7 +144,9 @@ func (m *memImpl) Release(ptr Ptr) error { c := m.cells[ptr].data if c != nil { - c.DropCell(m) + if err := c.DropCell(m); err != nil { + return err + } } m.cells[ptr] = cell{} diff --git a/pkg/lang/vm/mem/mem_test.go b/pkg/lang/vm/mem/mem_test.go index f916e49..0c74093 100644 --- a/pkg/lang/vm/mem/mem_test.go +++ b/pkg/lang/vm/mem/mem_test.go @@ -208,7 +208,7 @@ func TestChainDrop(t *testing.T) { assert.Equal(t, mem.CellKindArray, m.Kind(mem.Ptr(5))) assert.Equal(t, mem.CellKindEmpty, m.Kind(mem.Ptr(6))) - val.Drop(m) + assert.NoError(t, val.Drop(m)) for _, ptr := range []mem.Ptr{1, 2, 3, 4, 5, 6} { assert.Equal(t, mem.CellKindEmpty, m.Kind(ptr)) |
