Loading sdk/bp.go +19 −8 Original line number Diff line number Diff line Loading @@ -51,13 +51,23 @@ func (s *bpPropertySet) getValue(name string) interface{} { return s.properties[name] } func (s *bpPropertySet) copy() bpPropertySet { func (s *bpPropertySet) deepCopy() *bpPropertySet { propertiesCopy := make(map[string]interface{}) for p, v := range s.properties { propertiesCopy[p] = v var valueCopy interface{} if ps, ok := v.(*bpPropertySet); ok { valueCopy = ps.deepCopy() } else if values, ok := v.([]string); ok { valuesCopy := make([]string, len(values)) copy(valuesCopy, values) valueCopy = valuesCopy } else { valueCopy = v } propertiesCopy[p] = valueCopy } return bpPropertySet{ return &bpPropertySet{ properties: propertiesCopy, order: append([]string(nil), s.order...), } Loading Loading @@ -95,15 +105,15 @@ func (s *bpPropertySet) insertAfter(position string, name string, value interfac } type bpModule struct { bpPropertySet *bpPropertySet moduleType string } var _ android.BpModule = (*bpModule)(nil) func (m *bpModule) copy() *bpModule { func (m *bpModule) deepCopy() *bpModule { return &bpModule{ bpPropertySet: m.bpPropertySet.copy(), bpPropertySet: m.bpPropertySet.deepCopy(), moduleType: m.moduleType, } } Loading Loading @@ -135,7 +145,8 @@ func (f *bpFile) AddModule(module android.BpModule) { func (f *bpFile) newModule(moduleType string) *bpModule { module := &bpModule{ moduleType: moduleType, bpPropertySet: &bpPropertySet{}, } (&module.bpPropertySet).init() module.bpPropertySet.init() return module } sdk/update.go +2 −2 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext) android.OutputPath { for _, unversioned := range builder.prebuiltOrder { // Copy the unversioned module so it can be modified to make it versioned. versioned := unversioned.copy() versioned := unversioned.deepCopy() name := versioned.properties["name"].(string) versioned.setProperty("name", builder.versionedSdkMemberName(name)) versioned.insertAfter("name", "sdk_member_name", name) Loading Loading @@ -286,7 +286,7 @@ func generateBpContents(contents *generatedContents, bpFile *bpFile) { for _, bpModule := range bpFile.order { contents.Printfln("") contents.Printfln("%s {", bpModule.moduleType) outputPropertySet(contents, &bpModule.bpPropertySet) outputPropertySet(contents, bpModule.bpPropertySet) contents.Printfln("}") } } Loading Loading
sdk/bp.go +19 −8 Original line number Diff line number Diff line Loading @@ -51,13 +51,23 @@ func (s *bpPropertySet) getValue(name string) interface{} { return s.properties[name] } func (s *bpPropertySet) copy() bpPropertySet { func (s *bpPropertySet) deepCopy() *bpPropertySet { propertiesCopy := make(map[string]interface{}) for p, v := range s.properties { propertiesCopy[p] = v var valueCopy interface{} if ps, ok := v.(*bpPropertySet); ok { valueCopy = ps.deepCopy() } else if values, ok := v.([]string); ok { valuesCopy := make([]string, len(values)) copy(valuesCopy, values) valueCopy = valuesCopy } else { valueCopy = v } propertiesCopy[p] = valueCopy } return bpPropertySet{ return &bpPropertySet{ properties: propertiesCopy, order: append([]string(nil), s.order...), } Loading Loading @@ -95,15 +105,15 @@ func (s *bpPropertySet) insertAfter(position string, name string, value interfac } type bpModule struct { bpPropertySet *bpPropertySet moduleType string } var _ android.BpModule = (*bpModule)(nil) func (m *bpModule) copy() *bpModule { func (m *bpModule) deepCopy() *bpModule { return &bpModule{ bpPropertySet: m.bpPropertySet.copy(), bpPropertySet: m.bpPropertySet.deepCopy(), moduleType: m.moduleType, } } Loading Loading @@ -135,7 +145,8 @@ func (f *bpFile) AddModule(module android.BpModule) { func (f *bpFile) newModule(moduleType string) *bpModule { module := &bpModule{ moduleType: moduleType, bpPropertySet: &bpPropertySet{}, } (&module.bpPropertySet).init() module.bpPropertySet.init() return module }
sdk/update.go +2 −2 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext) android.OutputPath { for _, unversioned := range builder.prebuiltOrder { // Copy the unversioned module so it can be modified to make it versioned. versioned := unversioned.copy() versioned := unversioned.deepCopy() name := versioned.properties["name"].(string) versioned.setProperty("name", builder.versionedSdkMemberName(name)) versioned.insertAfter("name", "sdk_member_name", name) Loading Loading @@ -286,7 +286,7 @@ func generateBpContents(contents *generatedContents, bpFile *bpFile) { for _, bpModule := range bpFile.order { contents.Printfln("") contents.Printfln("%s {", bpModule.moduleType) outputPropertySet(contents, &bpModule.bpPropertySet) outputPropertySet(contents, bpModule.bpPropertySet) contents.Printfln("}") } } Loading