diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2016-03-11 10:59:01 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2016-03-11 10:59:01 +0200 |
commit | 3f6e5b64a988667ba904e2014f1273993adbc007 (patch) | |
tree | 8c518af7a4da1f0fbf5bb11c3f64c6d2f26a73f4 /args.go | |
parent | use 'switch string(key) {}' instead of 'switch { case bytes.Equal(key, ...) .... (diff) | |
download | fasthttp-3f6e5b64a988667ba904e2014f1273993adbc007.tar.gz fasthttp-3f6e5b64a988667ba904e2014f1273993adbc007.tar.bz2 fasthttp-3f6e5b64a988667ba904e2014f1273993adbc007.zip |
optimized delAllArgs
Diffstat (limited to 'args.go')
-rw-r--r-- | args.go | 15 |
1 files changed, 3 insertions, 12 deletions
@@ -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 |