aboutsummaryrefslogtreecommitdiffstats
path: root/vm/stack.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-02-21 01:13:46 +0800
committerobscuren <geffobscura@gmail.com>2015-02-21 01:13:46 +0800
commitbd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca (patch)
tree46ab5943fd5e26198067aeec4a44287452eb2a32 /vm/stack.go
parent771bfe9e78f9952002a71cccc8d41c8c544fdfcb (diff)
parentd586a633ff005ac01c9f1eb33552d147cf6c883e (diff)
downloaddexon-bd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca.tar
dexon-bd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca.tar.gz
dexon-bd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca.tar.bz2
dexon-bd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca.tar.lz
dexon-bd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca.tar.xz
dexon-bd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca.tar.zst
dexon-bd7ebbcd5b77ce4fdd471b44f0acda80f2b3ceca.zip
Merge branch 'release/0.9.0'
Diffstat (limited to 'vm/stack.go')
-rw-r--r--vm/stack.go19
1 files changed, 9 insertions, 10 deletions
diff --git a/vm/stack.go b/vm/stack.go
index 6091479cb..a9aafdb9d 100644
--- a/vm/stack.go
+++ b/vm/stack.go
@@ -2,7 +2,6 @@ package vm
import (
"fmt"
- "math"
"math/big"
)
@@ -91,6 +90,12 @@ func (st *Stack) Get(amount *big.Int) []*big.Int {
return nil
}
+func (st *Stack) require(n int) {
+ if st.Len() < n {
+ panic(fmt.Sprintf("stack underflow (%d <=> %d)", st.Len(), n))
+ }
+}
+
func (st *Stack) Print() {
fmt.Println("### stack ###")
if len(st.data) > 0 {
@@ -135,17 +140,11 @@ func (m *Memory) Resize(size uint64) {
}
}
-func (m *Memory) Get(offset, size int64) []byte {
- if len(m.store) > int(offset) {
- end := int(math.Min(float64(len(m.store)), float64(offset+size)))
-
- return m.store[offset:end]
+func (self *Memory) Get(offset, size int64) (cpy []byte) {
+ if size == 0 {
+ return nil
}
- return nil
-}
-
-func (self *Memory) Geti(offset, size int64) (cpy []byte) {
if len(self.store) > int(offset) {
cpy = make([]byte, size)
copy(cpy, self.store[offset:offset+size])