diff --git a/internal/system/style.go b/internal/system/style.go index 9ed4d52..4617eeb 100644 --- a/internal/system/style.go +++ b/internal/system/style.go @@ -5,20 +5,21 @@ import "git.tebibyte.media/tomo/tomo" type styleApplicator struct { style *tomo.Style role tomo.Role - rules []*tomo.Rule + rules []tomo.Rule } func (this *styleApplicator) apply (box anyBox) { if box.Role() != this.role { + this.role = box.Role() // the role has changed, so re-cache the list of rules - this.rules = make([]*tomo.Rule, 0, 4) + this.rules = nil for _, rule := range this.style.Rules { role := box.Role() // blank fields match anything if rule.Role.Package == "" { role.Package = "" } if rule.Role.Object == "" { role.Object = "" } if rule.Role == role { - this.rules = append(this.rules, &rule) + this.rules = append(this.rules, rule) } } } @@ -27,12 +28,10 @@ func (this *styleApplicator) apply (box anyBox) { attrs := make(tomo.AttrSet) for _, rule := range this.rules { satisifed := true - if rule.Tags != nil { - for _, tag := range rule.Tags { - if !box.Tag(tag) { - satisifed = false - break - } + for _, tag := range rule.Tags { + if !box.Tag(tag) { + satisifed = false + break } }