Change jsonVariationMap to array of struct am: 8097d1a0e6 am: 465668494e am: b753906270 am: 353186f043 am: bb15015143

Original change: https://android-review.googlesource.com/c/platform/build/blueprint/+/2059708

Change-Id: I5d0bdec9cde422dc73bc660c8a17349ff09d5ff3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/context.go b/context.go
index 33a7487..e7b0d7d 100644
--- a/context.go
+++ b/context.go
@@ -2268,7 +2268,7 @@
 	return
 }
 
-type jsonVariationMap map[string]string
+type jsonVariationMap []Variation
 
 type jsonModuleName struct {
 	Name                 string
@@ -2290,7 +2290,17 @@
 }
 
 func toJsonVariationMap(vm variationMap) jsonVariationMap {
-	return jsonVariationMap(vm)
+	m := make(jsonVariationMap, 0, len(vm))
+	for k, v := range vm {
+		m = append(m, Variation{k, v})
+	}
+	sort.Slice(m, func(i, j int) bool {
+		if m[i].Mutator != m[j].Mutator {
+			return m[i].Mutator < m[j].Mutator
+		}
+		return m[i].Variation < m[j].Variation
+	})
+	return m
 }
 
 func jsonModuleNameFromModuleInfo(m *moduleInfo) *jsonModuleName {