gotosocial/vendor/github.com/chenzhuoyu/iasm/expr/pools.go

27 lines
367 B
Go
Raw Permalink Normal View History

package expr
import (
`sync`
)
var (
expressionPool sync.Pool
)
func newExpression() *Expr {
if v := expressionPool.Get(); v == nil {
return new(Expr)
} else {
return resetExpression(v.(*Expr))
}
}
func freeExpression(p *Expr) {
expressionPool.Put(p)
}
func resetExpression(p *Expr) *Expr {
*p = Expr{}
return p
}