aboutsummaryrefslogtreecommitdiff
path: root/args.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-03-11 10:59:01 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-03-11 10:59:01 +0200
commit3f6e5b64a988667ba904e2014f1273993adbc007 (patch)
tree8c518af7a4da1f0fbf5bb11c3f64c6d2f26a73f4 /args.go
parentuse 'switch string(key) {}' instead of 'switch { case bytes.Equal(key, ...) .... (diff)
downloadfasthttp-3f6e5b64a988667ba904e2014f1273993adbc007.tar.gz
fasthttp-3f6e5b64a988667ba904e2014f1273993adbc007.tar.bz2
fasthttp-3f6e5b64a988667ba904e2014f1273993adbc007.zip
optimized delAllArgs
Diffstat (limited to 'args.go')
-rw-r--r--args.go15
1 files 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