aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-06-10 23:45:21 +0800
committerobscuren <geffobscura@gmail.com>2015-06-10 23:47:36 +0800
commitfc2a061d510fbe09534ee1ade167d66c40ba7bf1 (patch)
tree39f3234c4a88ad3457c997ad2ca58a7296426a39 /core
parent065aff9ffa2bee1008d1f406328dd12a073cb239 (diff)
downloaddexon-fc2a061d510fbe09534ee1ade167d66c40ba7bf1.tar.gz
dexon-fc2a061d510fbe09534ee1ade167d66c40ba7bf1.tar.zst
dexon-fc2a061d510fbe09534ee1ade167d66c40ba7bf1.zip
core/vm: unexported stack again. No longer required
Diffstat (limited to 'core')
-rw-r--r--core/vm/gas.go2
-rw-r--r--core/vm/stack.go24
-rw-r--r--core/vm/vm.go6
3 files changed, 16 insertions, 16 deletions
diff --git a/core/vm/gas.go b/core/vm/gas.go
index 1c29ccb65..32f5fec04 100644
--- a/core/vm/gas.go
+++ b/core/vm/gas.go
@@ -21,7 +21,7 @@ var (
GasContractByte = big.NewInt(200)
)
-func baseCheck(op OpCode, stack *Stack, gas *big.Int) error {
+func baseCheck(op OpCode, stack *stack, gas *big.Int) error {
// PUSH and DUP are a bit special. They all cost the same but we do want to have checking on stack push limit
// PUSH is also allowed to calculate the same price for all PUSHes
// DUP requirements are handled elsewhere (except for the stack limit check)
diff --git a/core/vm/stack.go b/core/vm/stack.go
index 1d0a018c6..b551de272 100644
--- a/core/vm/stack.go
+++ b/core/vm/stack.go
@@ -5,20 +5,20 @@ import (
"math/big"
)
-func newStack() *Stack {
- return &Stack{}
+func newstack() *stack {
+ return &stack{}
}
-type Stack struct {
+type stack struct {
data []*big.Int
ptr int
}
-func (st *Stack) Data() []*big.Int {
+func (st *stack) Data() []*big.Int {
return st.data
}
-func (st *Stack) push(d *big.Int) {
+func (st *stack) push(d *big.Int) {
// NOTE push limit (1024) is checked in baseCheck
stackItem := new(big.Int).Set(d)
if len(st.data) > st.ptr {
@@ -29,36 +29,36 @@ func (st *Stack) push(d *big.Int) {
st.ptr++
}
-func (st *Stack) pop() (ret *big.Int) {
+func (st *stack) pop() (ret *big.Int) {
st.ptr--
ret = st.data[st.ptr]
return
}
-func (st *Stack) len() int {
+func (st *stack) len() int {
return st.ptr
}
-func (st *Stack) swap(n int) {
+func (st *stack) swap(n int) {
st.data[st.len()-n], st.data[st.len()-1] = st.data[st.len()-1], st.data[st.len()-n]
}
-func (st *Stack) dup(n int) {
+func (st *stack) dup(n int) {
st.push(st.data[st.len()-n])
}
-func (st *Stack) peek() *big.Int {
+func (st *stack) peek() *big.Int {
return st.data[st.len()-1]
}
-func (st *Stack) require(n int) error {
+func (st *stack) require(n int) error {
if st.len() < n {
return fmt.Errorf("stack underflow (%d <=> %d)", len(st.data), n)
}
return nil
}
-func (st *Stack) Print() {
+func (st *stack) Print() {
fmt.Println("### stack ###")
if len(st.data) > 0 {
for i, val := range st.data {
diff --git a/core/vm/vm.go b/core/vm/vm.go
index bf8bbcdc2..fe380d79d 100644
--- a/core/vm/vm.go
+++ b/core/vm/vm.go
@@ -75,7 +75,7 @@ func (self *Vm) Run(context *Context, input []byte) (ret []byte, err error) {
op OpCode // current opcode
codehash = crypto.Sha3Hash(code) // codehash is used when doing jump dest caching
mem = NewMemory() // bound memory
- stack = newStack() // local stack
+ stack = newstack() // local stack
pc = uint64(0) // program counter
statedb = self.env.State() // current state
@@ -632,7 +632,7 @@ func (self *Vm) Run(context *Context, input []byte) (ret []byte, err error) {
// calculateGasAndSize calculates the required given the opcode and stack items calculates the new memorysize for
// the operation. This does not reduce gas or resizes the memory.
-func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCode, statedb *state.StateDB, mem *Memory, stack *Stack) (*big.Int, *big.Int, error) {
+func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCode, statedb *state.StateDB, mem *Memory, stack *stack) (*big.Int, *big.Int, error) {
var (
gas = new(big.Int)
newMemSize *big.Int = new(big.Int)
@@ -789,7 +789,7 @@ func (self *Vm) RunPrecompiled(p *PrecompiledAccount, input []byte, context *Con
// log emits a log event to the environment for each opcode encountered. This is not to be confused with the
// LOG* opcode.
-func (self *Vm) log(pc uint64, op OpCode, gas *big.Int, memory *Memory, stack *Stack, context *Context) {
+func (self *Vm) log(pc uint64, op OpCode, gas *big.Int, memory *Memory, stack *stack, context *Context) {
if Debug {
mem := make([]byte, len(memory.Data()))
copy(mem, memory.Data())