diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-10-05 22:14:01 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-10-05 22:14:01 +0800 |
commit | 5b34fa538e54320778314081df97da561f7c6314 (patch) | |
tree | dca15c858b8ac4cd79ed7b7733260ab3021bbd0c /core/vm/memory.go | |
parent | 8b865fa9bf75e728d5d76f5a1460e0c37d8b5f9e (diff) | |
parent | 7c7692933c21b77328a94eed714f66c276776197 (diff) | |
download | dexon-5b34fa538e54320778314081df97da561f7c6314.tar dexon-5b34fa538e54320778314081df97da561f7c6314.tar.gz dexon-5b34fa538e54320778314081df97da561f7c6314.tar.bz2 dexon-5b34fa538e54320778314081df97da561f7c6314.tar.lz dexon-5b34fa538e54320778314081df97da561f7c6314.tar.xz dexon-5b34fa538e54320778314081df97da561f7c6314.tar.zst dexon-5b34fa538e54320778314081df97da561f7c6314.zip |
Merge pull request #1756 from obscuren/core-refactor
core, core/vm: refactor
Diffstat (limited to 'core/vm/memory.go')
-rw-r--r-- | core/vm/memory.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/core/vm/memory.go b/core/vm/memory.go index 0109050d7..d01188417 100644 --- a/core/vm/memory.go +++ b/core/vm/memory.go @@ -18,6 +18,7 @@ package vm import "fmt" +// Memory implements a simple memory model for the ethereum virtual machine. type Memory struct { store []byte } @@ -26,6 +27,7 @@ func NewMemory() *Memory { return &Memory{nil} } +// Set sets offset + size to value func (m *Memory) Set(offset, size uint64, value []byte) { // length of store may never be less than offset + size. // The store should be resized PRIOR to setting the memory @@ -40,12 +42,14 @@ func (m *Memory) Set(offset, size uint64, value []byte) { } } +// Resize resizes the memory to size func (m *Memory) Resize(size uint64) { if uint64(m.Len()) < size { m.store = append(m.store, make([]byte, size-uint64(m.Len()))...) } } +// Get returns offset + size as a new slice func (self *Memory) Get(offset, size int64) (cpy []byte) { if size == 0 { return nil @@ -61,6 +65,7 @@ func (self *Memory) Get(offset, size int64) (cpy []byte) { return } +// GetPtr returns the offset + size func (self *Memory) GetPtr(offset, size int64) []byte { if size == 0 { return nil @@ -73,10 +78,12 @@ func (self *Memory) GetPtr(offset, size int64) []byte { return nil } +// Len returns the length of the backing slice func (m *Memory) Len() int { return len(m.store) } +// Data returns the backing slice func (m *Memory) Data() []byte { return m.store } |