Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2268cd8b authored by Spandan Das's avatar Spandan Das
Browse files

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
parent bb0d5866
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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}
}