on main help sign in
perf(shell): reduce allocations in updateShellFromRunner (#1817)
commite4400ad2413fdf57d85e5e07d641c61e357d3c2a authorCarlos Alexandro Becker <caarlos0@users.noreply.github.com> dateFri 9 Jan 2026, 17:58 (9 months ago) parentdf6f514
1 file changed+5−3
internal/shell/shell.go+5−3
internal/shell/shell.go+5−3
@@ -247,12 +247,14 @@ func (s *Shell) newInterp(stdout, stderr io.Writer) (*interp.Runner, error) {
247247 )
248248}
249249
250−// updateShellFromRunner updates the shell from the interpreter after execution
250+// updateShellFromRunner updates the shell from the interpreter after execution.
251251func (s *Shell) updateShellFromRunner(runner *interp.Runner) {
252252 s.cwd = runner.Dir
253− s.env = nil
253+ s.env = s.env[:0]
254254 for name, vr := range runner.Vars {
255− s.env = append(s.env, fmt.Sprintf("%s=%s", name, vr.Str))
255+ if vr.Exported {
256+ s.env = append(s.env, name+"="+vr.Str)
257+ }
256258 }
257259}
258260