Selaa lähdekoodia

core/vm: capped int pool

Jeffrey Wilcke 8 vuotta sitten
vanhempi
commit
e16a7ef60f
1 muutettua tiedostoa jossa 6 lisäystä ja 0 poistoa
  1. 6 0
      core/vm/intpool.go

+ 6 - 0
core/vm/intpool.go

@@ -20,6 +20,8 @@ import "math/big"
 
 var checkVal = big.NewInt(-42)
 
+const poolLimit = 256
+
 // intPool is a pool of big integers that
 // can be reused for all big.Int operations.
 type intPool struct {
@@ -37,6 +39,10 @@ func (p *intPool) get() *big.Int {
 	return new(big.Int)
 }
 func (p *intPool) put(is ...*big.Int) {
+	if len(p.pool.data) > poolLimit {
+		return
+	}
+
 	for _, i := range is {
 		// verifyPool is a build flag. Pool verification makes sure the integrity
 		// of the integer pool by comparing values to a default value.