Fix non-determinism in all_teams.pb

this.teams_for_mods uses a dictionary and `range` yields a
non-deterministic ordering. This would cause all_teams.pb to be
non-determinisitic. Since this file is created during Soong analysis, it
would cause the .ninja file to also be non-deterministic.

Use SortedKeys to do the iteration instead.

Test: go build ./android
Test: m nothing a couple of times and checked that the .ninja files are
identical

Change-Id: Ife2d2520d118ef25639f86390912d98b5f057655
This commit is contained in:
Spandan Das
2024-02-05 22:06:54 +00:00
parent bb0d5866c5
commit 2268cd8b8b

View File

@@ -118,8 +118,8 @@ func (this *allTeamsSingleton) MakeVars(ctx MakeVarsContext) {
// either the declared team data for that module or the package default team data for that module.
func (this *allTeamsSingleton) lookupTeamForAllModules() *team_proto.AllTeams {
teamsProto := make([]*team_proto.Team, len(this.teams_for_mods))
i := 0
for moduleName, m := range this.teams_for_mods {
for i, moduleName := range SortedKeys(this.teams_for_mods) {
m, _ := this.teams_for_mods[moduleName]
teamName := m.teamName
var teamProperties teamProperties
found := false
@@ -152,7 +152,6 @@ func (this *allTeamsSingleton) lookupTeamForAllModules() *team_proto.AllTeams {
}
}
teamsProto[i] = teamData
i++
}
return &team_proto.AllTeams{Teams: teamsProto}
}