From 4774f6373d3e41acba54cb4c63ca51f1b3de2ddd Mon Sep 17 00:00:00 2001 From: Mel Date: Sat, 2 Jul 2022 14:49:07 +0200 Subject: Rename ErrEnvNotSet to ErrNullPtrDereference --- pkg/lang/vm/errors.go | 11 +++++++---- pkg/lang/vm/utils.go | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'pkg') diff --git a/pkg/lang/vm/errors.go b/pkg/lang/vm/errors.go index fb37726..bfc8a34 100644 --- a/pkg/lang/vm/errors.go +++ b/pkg/lang/vm/errors.go @@ -1,7 +1,6 @@ package vm import ( - "errors" "fmt" "jinx/pkg/lang/vm/code" "jinx/pkg/lang/vm/mem" @@ -24,9 +23,13 @@ func (e Error) Error() string { // Fatal errors -var ( - ErrEnvNotSet = errors.New("env not set") -) +type ErrNullPtrDereference struct { + At mem.Ptr +} + +func (e ErrNullPtrDereference) Error() string { + return fmt.Sprintf("null pointer dereference at %v", e.At) +} type ErrInvalidOp struct { Op uint8 diff --git a/pkg/lang/vm/utils.go b/pkg/lang/vm/utils.go index 46eccb1..00311ef 100644 --- a/pkg/lang/vm/utils.go +++ b/pkg/lang/vm/utils.go @@ -30,7 +30,7 @@ func (vm *VM) popCallAndDrop() (int, error) { func (vm *VM) getMemCell(ptr mem.Ptr, kind mem.CellKind, allowNil bool) (mem.CellData, error) { if ptr.IsNull() { - return nil, ErrEnvNotSet // TODO: Rename + return nil, ErrNullPtrDereference{At: ptr} } if !vm.memory.Is(ptr, kind) { -- cgit 1.4.1