summaryrefslogtreecommitdiff
path: root/builtin/cat-file.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-09-21 06:22:43 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-09-22 03:49:53 (GMT)
commit8968b7b0a8bf265a6018682a854002421c2ea84c (patch)
tree222dbfb83df8bd0107bf0f9eb5a77c2a70506794 /builtin/cat-file.c
parent59c0ea183ad1c5c2b3790caa5046e4ecfa839247 (diff)
downloadgit-8968b7b0a8bf265a6018682a854002421c2ea84c.zip
git-8968b7b0a8bf265a6018682a854002421c2ea84c.tar.gz
git-8968b7b0a8bf265a6018682a854002421c2ea84c.tar.bz2
test-line-buffer: simplify command parsing
The handle_command() function matches an incoming command string with a sequence of starts_with() checks. But it also surrounds these with a switch on the first character of the command, which lets us jump to the right block of starts_with() without going linearly through the list. However, each case arm of the switch falls through to the one below it. This is pointless (we know that a command starting with 'b' does not need to check any of the commands in the 'c' block), and it makes gcc's -Wimplicit-fallthrough complain. We could solve this by adding a break at the end of each block. However, this optimization isn't helping anything. Even if it does make matching faster (which is debatable), this is code that is run only in the test suite, and each run receives at most two of these "commands". We should favor simplicity and readability over micro-optimizing. Instead, let's drop the switch statement completely and replace it with an if/else cascade. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/cat-file.c')
0 files changed, 0 insertions, 0 deletions