mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-27 22:26:40 +00:00
27 lines
367 B
Go
27 lines
367 B
Go
|
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
|
||
|
}
|