diff options
author | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-07-09 14:25:18 +0900 |
---|---|---|
committer | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-07-09 14:59:42 +0900 |
commit | a4a0225eb9076ed075ba73bff1f89243907ca218 (patch) | |
tree | ffd2eae9e1ccf9b177d3428cfcf5ec4f10faac34 /expr.go | |
parent | ba408a2a4926fbffd78f2aded988ee814ae962a1 (diff) | |
download | kati-a4a0225eb9076ed075ba73bff1f89243907ca218.tar.gz |
use sync.Pool for evalBuffer and wordBuffer
Diffstat (limited to 'expr.go')
-rw-r--r-- | expr.go | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -35,7 +35,7 @@ type evalWriter interface { io.Writer writeWord([]byte) writeWordString(string) - resetSpace() + resetSep() } // Value is an interface for value. @@ -92,7 +92,7 @@ func (e expr) String() string { func (e expr) Eval(w evalWriter, ev *Evaluator) error { for _, v := range e { - w.resetSpace() + w.resetSep() err := v.Eval(w, ev) if err != nil { return err @@ -153,13 +153,13 @@ func (v *varref) String() string { func (v *varref) Eval(w evalWriter, ev *Evaluator) error { te := traceEvent.begin("var", v, traceEventMain) - buf := newBuf() + buf := newEbuf() err := v.varname.Eval(buf, ev) if err != nil { return err } vv := ev.LookupVar(buf.String()) - freeBuf(buf) + buf.release() err = vv.Eval(w, ev) if err != nil { return err @@ -234,7 +234,7 @@ func (v varsubst) String() string { func (v varsubst) Eval(w evalWriter, ev *Evaluator) error { te := traceEvent.begin("varsubst", v, traceEventMain) - buf := newBuf() + buf := newEbuf() params, err := ev.args(buf, v.varname, v.pat, v.subst) if err != nil { return err @@ -249,7 +249,7 @@ func (v varsubst) Eval(w evalWriter, ev *Evaluator) error { return err } vals := splitSpaces(buf.String()) - freeBuf(buf) + buf.release() space := false for _, val := range vals { if space { |