From 5f952e632f79a6c9725bfcb1aa07819dcbf3f277 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Tue, 1 Dec 2015 16:23:21 +0200 Subject: [PATCH] Microoptimization: substituted switch by if in decodeArgAppend, so the function may be inlined --- args.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/args.go b/args.go index 4ed61c4..6c4bd17 100644 --- a/args.go +++ b/args.go @@ -381,13 +381,7 @@ func decodeArg(dst, src []byte, decodePlus bool) []byte { func decodeArgAppend(dst, src []byte, decodePlus bool) []byte { for i, n := 0, len(src); i < n; i++ { c := src[i] - switch c { - case '+': - if decodePlus { - c = ' ' - } - dst = append(dst, c) - case '%': + if c == '%' { if i+2 >= n { return append(dst, src[i:]...) } @@ -399,7 +393,9 @@ func decodeArgAppend(dst, src []byte, decodePlus bool) []byte { dst = append(dst, byte(x1<<4|x2)) i += 2 } - default: + } else if decodePlus && c == '+' { + dst = append(dst, ' ') + } else { dst = append(dst, c) } }