From e4400ad2413fdf57d85e5e07d641c61e357d3c2a Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Fri, 9 Jan 2026 17:58:37 -0300 Subject: [PATCH] perf(shell): reduce allocations in updateShellFromRunner (#1817) --- internal/shell/shell.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/shell/shell.go b/internal/shell/shell.go index f9f4656b82bbb6ee14b38469a20d493d98354b4a..e5a54f01c403ae1b8de681616c5d693bc842ac14 100644 --- a/internal/shell/shell.go +++ b/internal/shell/shell.go @@ -247,12 +247,14 @@ func (s *Shell) newInterp(stdout, stderr io.Writer) (*interp.Runner, error) { ) } -// updateShellFromRunner updates the shell from the interpreter after execution +// updateShellFromRunner updates the shell from the interpreter after execution. func (s *Shell) updateShellFromRunner(runner *interp.Runner) { s.cwd = runner.Dir - s.env = nil + s.env = s.env[:0] for name, vr := range runner.Vars { - s.env = append(s.env, fmt.Sprintf("%s=%s", name, vr.Str)) + if vr.Exported { + s.env = append(s.env, name+"="+vr.Str) + } } }