Addresses the issue which caused #109115

Kubernetes-commit: cbbb5f70a47644f9830073d9d0329bf247a328a1
This commit is contained in:
Michael Bolot 2022-03-29 12:35:13 -05:00 committed by Kubernetes Publisher
parent 1cab68940f
commit e540ebe994

View File

@ -280,18 +280,15 @@ func (c *threadSafeMap) updateIndices(oldObj interface{}, newObj interface{}, ke
c.indices[name] = index
}
for _, value := range oldIndexValues {
// We optimize for the most common case where indexFunc returns a single value.
if len(indexValues) == 1 && value == indexValues[0] {
if len(indexValues) == 1 && len(oldIndexValues) == 1 && indexValues[0] == oldIndexValues[0] {
// We optimize for the most common case where indexFunc returns a single value which has not been changed
continue
}
for _, value := range oldIndexValues {
c.deleteKeyFromIndex(key, value, index)
}
for _, value := range indexValues {
// We optimize for the most common case where indexFunc returns a single value.
if len(oldIndexValues) == 1 && value == oldIndexValues[0] {
continue
}
c.addKeyToIndex(key, value, index)
}
}