mirror of
https://github.com/kubernetes/client-go.git
synced 2025-06-26 23:17:34 +00:00
modify the elements in the array directly without allocating a new array
Kubernetes-commit: 238fce9357634502badbcc3704b0655cf8c378c3
This commit is contained in:
parent
cfd0d8a109
commit
c7901fa3e4
9
tools/cache/delta_fifo.go
vendored
9
tools/cache/delta_fifo.go
vendored
@ -373,13 +373,8 @@ func dedupDeltas(deltas Deltas) Deltas {
|
|||||||
a := &deltas[n-1]
|
a := &deltas[n-1]
|
||||||
b := &deltas[n-2]
|
b := &deltas[n-2]
|
||||||
if out := isDup(a, b); out != nil {
|
if out := isDup(a, b); out != nil {
|
||||||
// `a` and `b` are duplicates. Only keep the one returned from isDup().
|
deltas[n-2] = *out
|
||||||
// TODO: This extra array allocation and copy seems unnecessary if
|
return deltas[:n-1]
|
||||||
// all we do to dedup is compare the new delta with the last element
|
|
||||||
// in `items`, which could be done by mutating `items` directly.
|
|
||||||
// Might be worth profiling and investigating if it is safe to optimize.
|
|
||||||
d := append(Deltas{}, deltas[:n-2]...)
|
|
||||||
return append(d, *out)
|
|
||||||
}
|
}
|
||||||
return deltas
|
return deltas
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user