From ac697326a6045eaa760b159e4bda37c57be61cbf Mon Sep 17 00:00:00 2001 From: Jeffrey Wilcke Date: Thu, 6 Aug 2015 23:06:47 +0200 Subject: core/vm: reduced big int allocations Reduced big int allocation by making stack items modifiable. Instead of adding items such as `common.Big0` to the stack, `new(big.Int)` is added instead. One must expect that any item that is added to the stack might change. --- core/vm/stack.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'core/vm/stack.go') diff --git a/core/vm/stack.go b/core/vm/stack.go index 23c109455..009ac9e1b 100644 --- a/core/vm/stack.go +++ b/core/vm/stack.go @@ -21,14 +21,17 @@ import ( "math/big" ) -func newstack() *stack { - return &stack{} -} - +// stack is an object for basic stack operations. Items popped to the stack are +// expected to be changed and modified. stack does not take care of adding newly +// initialised objects. type stack struct { data []*big.Int } +func newstack() *stack { + return &stack{} +} + func (st *stack) Data() []*big.Int { return st.data } -- cgit v1.2.3