Skip to content

Commit 80ec80f

Browse files
committed
fix: deep-copy deps slice to avoid shared reference mutation
1 parent b1a8fac commit 80ec80f

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

app.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,8 @@ func (a *App) GetDependencies() map[string][]string {
617617

618618
func (a *App) AddDependency(mainMod string, deps []string) {
619619
a.mu.Lock()
620-
a.ProjectData.Dependencies[mainMod] = deps
620+
depsCopy := append([]string{}, deps...)
621+
a.ProjectData.Dependencies[mainMod] = depsCopy
621622
a.ProjectModified = true
622623
a.mu.Unlock()
623624
a.emitLog(fmt.Sprintf("Dependency added: %s -> %s", mainMod, joinStrings(deps, ", ")), LogSuccess)
@@ -627,7 +628,8 @@ func (a *App) AddDependency(mainMod string, deps []string) {
627628
func (a *App) AddDependencyMulti(mainMods []string, deps []string) {
628629
a.mu.Lock()
629630
for _, main := range mainMods {
630-
a.ProjectData.Dependencies[main] = deps
631+
depsCopy := append([]string{}, deps...)
632+
a.ProjectData.Dependencies[main] = depsCopy
631633
}
632634
a.ProjectModified = true
633635
a.mu.Unlock()

0 commit comments

Comments
 (0)