about summary refs log tree commit diff
path: root/pkg/lang
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-07-02 14:49:07 +0200
committerMel <einebeere@gmail.com>2022-07-02 14:49:07 +0200
commit4774f6373d3e41acba54cb4c63ca51f1b3de2ddd (patch)
treef3619458a31e059ca60dee9a4c6920321ef1e8b1 /pkg/lang
parent18c7ab70ded45c76abb0b35c090b942a7bfcc3b4 (diff)
downloadjinx-4774f6373d3e41acba54cb4c63ca51f1b3de2ddd.tar.zst
jinx-4774f6373d3e41acba54cb4c63ca51f1b3de2ddd.zip
Rename ErrEnvNotSet to ErrNullPtrDereference
Diffstat (limited to 'pkg/lang')
-rw-r--r--pkg/lang/vm/errors.go11
-rw-r--r--pkg/lang/vm/utils.go2
2 files changed, 8 insertions, 5 deletions
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) {