diff options
author | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-12 23:51:38 +0900 |
---|---|---|
committer | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-18 13:29:49 +0900 |
commit | 7c9aa9f17d5f8f27aed62b5520b8fbc6be0103ac (patch) | |
tree | 3529e0da88dee981c07dfca3d9e64141c2833a58 /func.go | |
parent | b234e27aaedad3965c64eb8008a8216934f83437 (diff) | |
download | kati-7c9aa9f17d5f8f27aed62b5520b8fbc6be0103ac.tar.gz |
parseExpr less allocation
Diffstat (limited to 'func.go')
-rw-r--r-- | func.go | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -979,13 +979,13 @@ func (f *funcEvalAssign) Eval(w io.Writer, ev *Evaluator) { case ":=": // TODO(ukai): compute parsed expr in Compact when f.rhs is // literal? e.g. literal("$(foo)") => varref{literal("foo")}. - expr, _, err := parseExpr(rhs, nil) + expr, _, err := parseExpr(rhs, nil, false) if err != nil { panic(fmt.Sprintf("eval assign error: %q: %v", f.String(), err)) } - abuf.Reset() - expr.Eval(&abuf, ev) - rvalue = SimpleVar{value: tmpval(abuf.Bytes()), origin: "file"} + var vbuf bytes.Buffer + expr.Eval(&vbuf, ev) + rvalue = SimpleVar{value: tmpval(vbuf.Bytes()), origin: "file"} case "=": rvalue = RecursiveVar{expr: tmpval(rhs), origin: "file"} case "+=": |