Avoid modifying Compile_dex property
Previously, the code would modify the Compile_dex property to set it to true if the module was part of an APEX as the APEX needs the dex file. That lost information about whether the Compile_dex property was specified in the .bp file and also meant that the APEX variant had different properties to other variants which could result in unexpected differences in behavior between them. One of those differences can occur in the sdk snapshot generation code which uses the Compile_dex property to determined whether to write a compile_dex property in the generated snapshot. If it uses an APEX variant then it will always add compile_dex: true but if it used a non APEX variant then it would depend on the setting of compile_dex in the source. That leads to the generated snapshot being affected not just by the set of modules that are included but also how they were specified. This change stops modifying the properties and just uses a local variable to store the updated value. All the other (4) uses of the Compile_dex property were checked and 1 accesses the property before it is updated, 2 access the property from a module type (Import) that does not update the property and the other is in the sdk snapshot generation code which accesses it after it has been modified but needs to access the unmodified value. This is needed for the follow up change that allows an sdk module to reference an apex to automatically add exportable parts of the apex contents to the sdk snapshot avoiding duplication which can lead to errors. Bug: 232401814 Test: m nothing Change-Id: Ibc80d93473a266dc9f9900ec1cb175b51460b5e9
Loading
Please register or sign in to comment