diff options
Diffstat (limited to 'vendor/github.com/chenzhuoyu/iasm/expr/pools.go')
| -rw-r--r-- | vendor/github.com/chenzhuoyu/iasm/expr/pools.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/pools.go b/vendor/github.com/chenzhuoyu/iasm/expr/pools.go new file mode 100644 index 000000000..fde422ee6 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/pools.go @@ -0,0 +1,26 @@ +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 +} |
