aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/evm/stack.go
blob: 4545201cede2e324920dec5073b0954e67aac3c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package evm

import (
    "math/big"
    "sync"

    "github.com/dexon-foundation/dexon/core/vm"
)

var stackPool = sync.Pool{
    New: func() interface{} {
        return &vm.Stack{Data: make([]*big.Int, 0, 1024)}
    },
}

func NewStack() *vm.Stack {
    stack := stackPool.Get().(*vm.Stack)
    stack.Data = stack.Data[:0]
    return stack
}

func Recyclestack(stack *vm.Stack) {
    stackPool.Put(stack)
}