aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/vm/instructions.go2
-rw-r--r--core/vm/stack.go4
2 files changed, 3 insertions, 3 deletions
diff --git a/core/vm/instructions.go b/core/vm/instructions.go
index c0ac911ac..42f1781d8 100644
--- a/core/vm/instructions.go
+++ b/core/vm/instructions.go
@@ -731,7 +731,7 @@ func makePush(size uint64, pushByteSize int) executionFunc {
// make push instruction function
func makeDup(size int64) executionFunc {
return func(pc *uint64, evm *EVM, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) {
- stack.dup(int(size))
+ stack.dup(evm.interpreter.intPool, int(size))
return nil, nil
}
}
diff --git a/core/vm/stack.go b/core/vm/stack.go
index 2d1b7bb82..f4777c5b3 100644
--- a/core/vm/stack.go
+++ b/core/vm/stack.go
@@ -60,8 +60,8 @@ 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) {
- st.push(new(big.Int).Set(st.data[st.len()-n]))
+func (st *Stack) dup(pool *intPool, n int) {
+ st.push(pool.get().Set(st.data[st.len()-n]))
}
func (st *Stack) peek() *big.Int {