From 3f6e5b64a988667ba904e2014f1273993adbc007 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Fri, 11 Mar 2016 10:59:01 +0200 Subject: [PATCH] optimized delAllArgs --- args.go | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/args.go b/args.go index bf9ffa2..7850724 100644 --- a/args.go +++ b/args.go @@ -287,23 +287,14 @@ func copyArgs(dst, src []argsKV) []argsKV { } func delAllArgs(args []argsKV, key []byte) []argsKV { - for { - argsNew := delArg(args, key) - if len(argsNew) == len(args) { - return args - } - args = argsNew - } -} - -func delArg(args []argsKV, key []byte) []argsKV { for i, n := 0, len(args); i < n; i++ { kv := &args[i] if bytes.Equal(kv.key, key) { tmp := *kv copy(args[i:], args[i+1:]) - args[n-1] = tmp - return args[:n-1] + n-- + args[n] = tmp + args = args[:n] } } return args