From 88a14484aadcd0bcc9dde348b53d5d679105c4ef Mon Sep 17 00:00:00 2001 From: John Howard Date: Tue, 1 Nov 2022 13:36:26 -0700 Subject: [PATCH] Rename and comment on why sharing is safe Kubernetes-commit: 916fe2f89610a058603c1aa5260cd45841aadb0c --- pkg/labels/selector.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/labels/selector.go b/pkg/labels/selector.go index 06b0aa537..891004389 100644 --- a/pkg/labels/selector.go +++ b/pkg/labels/selector.go @@ -74,11 +74,12 @@ type Selector interface { RequiresExactMatch(label string) (value string, found bool) } -var everythingSelector Selector = internalSelector{} +// Sharing this saves 1 alloc per use; this is safe because it's immutable. +var sharedEverythingSelector Selector = internalSelector{} // Everything returns a selector that matches all labels. func Everything() Selector { - return everythingSelector + return sharedEverythingSelector } type nothingSelector struct{} @@ -93,11 +94,12 @@ func (n nothingSelector) RequiresExactMatch(label string) (value string, found b return "", false } -var internalNothingSelector Selector = nothingSelector{} +// Sharing this saves 1 alloc per use; this is safe because it's immutable. +var sharedNothingSelector Selector = nothingSelector{} // Nothing returns a selector that matches no labels func Nothing() Selector { - return internalNothingSelector + return sharedNothingSelector } // NewSelector returns a nil selector