aboutsummaryrefslogtreecommitdiff
path: root/expr.go
diff options
context:
space:
mode:
authorFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-07-09 14:25:18 +0900
committerFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-07-09 14:59:42 +0900
commita4a0225eb9076ed075ba73bff1f89243907ca218 (patch)
treeffd2eae9e1ccf9b177d3428cfcf5ec4f10faac34 /expr.go
parentba408a2a4926fbffd78f2aded988ee814ae962a1 (diff)
downloadkati-a4a0225eb9076ed075ba73bff1f89243907ca218.tar.gz
use sync.Pool for evalBuffer and wordBuffer
Diffstat (limited to 'expr.go')
-rw-r--r--expr.go12
1 files changed, 6 insertions, 6 deletions
diff --git a/expr.go b/expr.go
index f9ce520..b7ee6c4 100644
--- a/expr.go
+++ b/expr.go
@@ -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 {