Don't mutate non-property module fields
Setting sanitize and stl to nil in a mutator isn't valid, if any other
mutator creates a variant then the factory method will be called again
to create the new variants and will reset sanitize and stl to non-nil.
Add a property to sanitize and check it everywhere that checked for
sanitize != nil, and set the Stl property.
Bug: 319288033
Test: all soong tests pass
Flag: EXEMPT refactor
Change-Id: If99d5fa0f088ee4a73cc7dccdab4268618a6009f
diff --git a/cc/library.go b/cc/library.go
index 4373b46..560b1ae 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -2220,8 +2220,12 @@
if variants[i] != "" || isLLNDK || isVendorPublicLibrary || isImportedApiLibrary {
// A stubs or LLNDK stubs variant.
c := m.(*Module)
- c.sanitize = nil
- c.stl = nil
+ if c.sanitize != nil {
+ c.sanitize.Properties.ForceDisable = true
+ }
+ if c.stl != nil {
+ c.stl.Properties.Stl = StringPtr("none")
+ }
c.Properties.PreventInstall = true
lib := moduleLibraryInterface(m)
isLatest := i == (len(versions) - 1)