Use nil pointers for arch property structs
Blueprint can now handle creating a zero-valued struct when it encounters a nil pointer to a struct, reducing the amount of allocations and copying for arch structures that are not used. Change-Id: If36da5603dbe6469fe6406c821f21a122ea6ea49
This commit is contained in:
parent
705c84b9ee
commit
62496a0d2e
|
@ -463,6 +463,7 @@ func InitArchModule(m Module,
|
|||
|
||||
for _, properties := range base.generalProperties {
|
||||
propertiesValue := reflect.ValueOf(properties)
|
||||
t := propertiesValue.Type()
|
||||
if propertiesValue.Kind() != reflect.Ptr {
|
||||
panic(fmt.Errorf("properties must be a pointer to a struct, got %T",
|
||||
propertiesValue.Interface()))
|
||||
|
@ -476,7 +477,7 @@ func InitArchModule(m Module,
|
|||
|
||||
archProperties := &archProperties{}
|
||||
forEachInterface(reflect.ValueOf(archProperties), func(v reflect.Value) {
|
||||
newValue := proptools.CloneEmptyProperties(propertiesValue)
|
||||
newValue := reflect.Zero(t)
|
||||
v.Set(newValue)
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in New Issue