Procházet zdrojové kódy

perf(shell): reduce allocations in updateShellFromRunner (#1817)

Carlos Alexandro Becker před 1 měsícem
rodič
revize
e4400ad241
1 změnil soubory, kde provedl 5 přidání a 3 odebrání
  1. 5 3
      internal/shell/shell.go

+ 5 - 3
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)
+		}
 	}
 }