vm: make (*Context).IP() return instruction pointer
It is misleading to return +1 in code, and user representation can always be altered.
This commit is contained in:
parent
187a2d14b1
commit
681e81420a
3 changed files with 5 additions and 7 deletions
|
@ -221,7 +221,7 @@ func TestBuiltinDoesNotCompile(t *testing.T) {
|
|||
ctx := v.Context()
|
||||
retCount := 0
|
||||
for op, _, err := ctx.Next(); err == nil; op, _, err = ctx.Next() {
|
||||
if ctx.IP() > len(ctx.Program()) {
|
||||
if ctx.IP() >= len(ctx.Program()) {
|
||||
break
|
||||
}
|
||||
if op == opcode.RET {
|
||||
|
|
|
@ -433,8 +433,8 @@ func handleOps(c *ishell.Context) {
|
|||
}
|
||||
|
||||
func changePrompt(c ishell.Actions, v *vm.VM) {
|
||||
if v.Ready() && v.Context().IP()-1 >= 0 {
|
||||
c.SetPrompt(fmt.Sprintf("NEO-GO-VM %d > ", v.Context().IP()-1))
|
||||
if v.Ready() && v.Context().IP() >= 0 {
|
||||
c.SetPrompt(fmt.Sprintf("NEO-GO-VM %d > ", v.Context().IP()))
|
||||
} else {
|
||||
c.SetPrompt("NEO-GO-VM > ")
|
||||
}
|
||||
|
|
|
@ -141,11 +141,9 @@ func (c *Context) Next() (opcode.Opcode, []byte, error) {
|
|||
return instr, parameter, nil
|
||||
}
|
||||
|
||||
// IP returns the absolute instruction without taking 0 into account.
|
||||
// If that program starts the ip = 0 but IP() will return 1, cause its
|
||||
// the first instruction.
|
||||
// IP returns current instruction offset in the context script.
|
||||
func (c *Context) IP() int {
|
||||
return c.ip + 1
|
||||
return c.ip
|
||||
}
|
||||
|
||||
// LenInstr returns the number of instructions loaded.
|
||||
|
|
Loading…
Reference in a new issue