Addresses the issue which caused #109115

This commit is contained in:
Michael Bolot 2022-03-29 12:35:13 -05:00 committed by Wojciech Tyczyński
parent 56159f258c
commit cbbb5f70a4

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)
}
}