#40 reduce memory allocations for position.Position by using sync.Pool
This commit is contained in:
@@ -60,7 +60,8 @@ func (l *Parser) Parse() int {
|
||||
l.comments = parser.Comments{}
|
||||
l.positions = parser.Positions{}
|
||||
l.positionBuilder = &parser.PositionBuilder{
|
||||
Positions: &l.positions,
|
||||
Positions: &l.positions,
|
||||
PositionPool: &l.PositionPool,
|
||||
}
|
||||
|
||||
// parse
|
||||
@@ -111,6 +112,7 @@ func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) {
|
||||
for i := 1; i < len(yyDollar); i++ {
|
||||
if yyDollar[i].token != nil {
|
||||
p.TokenPool.Put(yyDollar[i].token)
|
||||
p.PositionPool.Put(yyDollar[i].token.Position)
|
||||
}
|
||||
yyDollar[i].token = nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user