diff options
author | obscuren <geffobscura@gmail.com> | 2015-06-10 23:45:21 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-06-10 23:47:36 +0800 |
commit | fc2a061d510fbe09534ee1ade167d66c40ba7bf1 (patch) | |
tree | 39f3234c4a88ad3457c997ad2ca58a7296426a39 /core | |
parent | 065aff9ffa2bee1008d1f406328dd12a073cb239 (diff) | |
download | dexon-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.go | 2 | ||||
-rw-r--r-- | core/vm/stack.go | 24 | ||||
-rw-r--r-- | core/vm/vm.go | 6 |
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()) |