aboutsummaryrefslogtreecommitdiff
path: root/pkg/lang/vm/mem
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/vm/mem')
-rw-r--r--pkg/lang/vm/mem/cell.go2
-rw-r--r--pkg/lang/vm/mem/mem.go4
-rw-r--r--pkg/lang/vm/mem/mem_test.go2
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))