Skip to content

Commit 4419a85

Browse files
authored
Merge pull request #2348 from 0xff-dev/main
🌱 chore: optimize Add/RemoveFinalizer
2 parents 7edfc04 + 8e0001c commit 4419a85

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

pkg/controller/controllerutil/controllerutil.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,15 +365,18 @@ func AddFinalizer(o client.Object, finalizer string) (finalizersUpdated bool) {
365365
// It returns an indication of whether it updated the object's list of finalizers.
366366
func RemoveFinalizer(o client.Object, finalizer string) (finalizersUpdated bool) {
367367
f := o.GetFinalizers()
368-
for i := 0; i < len(f); i++ {
368+
length := len(f)
369+
370+
index := 0
371+
for i := 0; i < length; i++ {
369372
if f[i] == finalizer {
370-
f = append(f[:i], f[i+1:]...)
371-
i--
372-
finalizersUpdated = true
373+
continue
373374
}
375+
f[index] = f[i]
376+
index++
374377
}
375-
o.SetFinalizers(f)
376-
return
378+
o.SetFinalizers(f[:index])
379+
return length != index
377380
}
378381

379382
// ContainsFinalizer checks an Object that the provided finalizer is present.

0 commit comments

Comments
 (0)