Clean up archMutator

Use a variable for module.base() and separate the full list of
targets for the class from the filtered list of targets for the
module.

Test: m checkbuild
Change-Id: I32edd26bcbaff0baf433d0581f253b8a5c8b81f3
diff --git a/android/arch.go b/android/arch.go
index 57899cd..6742b0a 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -295,32 +295,39 @@
 		return
 	}
 
-	if !module.base().ArchSpecific() {
+	base := module.base()
+
+	if !base.ArchSpecific() {
 		return
 	}
 
-	osClasses := module.base().OsClassSupported()
+	osClasses := base.OsClassSupported()
 
 	var moduleTargets []Target
 	primaryModules := make(map[int]bool)
 
 	for _, class := range osClasses {
-		targets := mctx.Config().Targets[class]
-		if len(targets) == 0 {
+		classTargets := mctx.Config().Targets[class]
+		if len(classTargets) == 0 {
 			continue
 		}
+		// only the primary arch in the recovery partition
+		if module.InstallInRecovery() {
+			classTargets = []Target{mctx.Config().Targets[Device][0]}
+		}
+
 		var multilib string
 		switch class {
 		case Device:
-			multilib = String(module.base().commonProperties.Target.Android.Compile_multilib)
+			multilib = String(base.commonProperties.Target.Android.Compile_multilib)
 		case Host, HostCross:
-			multilib = String(module.base().commonProperties.Target.Host.Compile_multilib)
+			multilib = String(base.commonProperties.Target.Host.Compile_multilib)
 		}
 		if multilib == "" {
-			multilib = String(module.base().commonProperties.Compile_multilib)
+			multilib = String(base.commonProperties.Compile_multilib)
 		}
 		if multilib == "" {
-			multilib = module.base().commonProperties.Default_multilib
+			multilib = base.commonProperties.Default_multilib
 		}
 		var prefer32 bool
 		switch class {
@@ -330,11 +337,7 @@
 			// Windows builds always prefer 32-bit
 			prefer32 = true
 		}
-		// only the primary arch in the recovery partition
-		if module.InstallInRecovery() {
-			targets = []Target{mctx.Config().Targets[Device][0]}
-		}
-		targets, err := decodeMultilib(multilib, targets, prefer32)
+		targets, err := decodeMultilib(multilib, classTargets, prefer32)
 		if err != nil {
 			mctx.ModuleErrorf("%s", err.Error())
 		}
@@ -345,7 +348,7 @@
 	}
 
 	if len(moduleTargets) == 0 {
-		module.base().commonProperties.Enabled = boolPtr(false)
+		base.commonProperties.Enabled = boolPtr(false)
 		return
 	}