diff options
author | Max Kellermann <max@duempel.org> | 2014-08-07 15:05:27 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-08-07 16:08:02 +0200 |
commit | db6db517424e09bab9a12934e9df6807a7049926 (patch) | |
tree | 6525302356ec79acb6bebd179a13b760b8dcb279 /src/util | |
parent | 981be7956b86c4bcf449ff87082f422721a6e8c3 (diff) | |
download | mpd-db6db517424e09bab9a12934e9df6807a7049926.tar.gz mpd-db6db517424e09bab9a12934e9df6807a7049926.tar.xz mpd-db6db517424e09bab9a12934e9df6807a7049926.zip |
util/CharUtil: add IsWhitespaceFast()
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/CharUtil.hxx | 13 | ||||
-rw-r--r-- | src/util/Tokenizer.cxx | 6 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/util/CharUtil.hxx b/src/util/CharUtil.hxx index 3c1959b22..9cb852524 100644 --- a/src/util/CharUtil.hxx +++ b/src/util/CharUtil.hxx @@ -58,6 +58,19 @@ IsWhitespaceNotNull(const char ch) return ch > 0 && ch <= 0x20; } +/** + * Is the given character whitespace? This calls the faster one of + * IsWhitespaceOrNull() or IsWhitespaceNotNull(). Use this if you + * want the fastest implementation, and you don't care if a null byte + * matches. + */ +constexpr +static inline bool +IsWhitespaceFast(const char ch) +{ + return IsWhitespaceOrNull(ch); +} + constexpr static inline bool IsPrintableASCII(char ch) diff --git a/src/util/Tokenizer.cxx b/src/util/Tokenizer.cxx index d839b6ce6..306a90074 100644 --- a/src/util/Tokenizer.cxx +++ b/src/util/Tokenizer.cxx @@ -67,7 +67,7 @@ Tokenizer::NextWord(Error &error) whitespace or end-of-string */ while (*++input != 0) { - if (IsWhitespaceOrNull(*input)) { + if (IsWhitespaceFast(*input)) { /* a whitespace: the word ends here */ *input = 0; /* skip all following spaces, too */ @@ -112,7 +112,7 @@ Tokenizer::NextUnquoted(Error &error) whitespace or end-of-string */ while (*++input != 0) { - if (IsWhitespaceOrNull(*input)) { + if (IsWhitespaceFast(*input)) { /* a whitespace: the word ends here */ *input = 0; /* skip all following spaces, too */ @@ -176,7 +176,7 @@ Tokenizer::NextString(Error &error) line) */ ++input; - if (!IsWhitespaceOrNull(*input)) { + if (!IsWhitespaceFast(*input)) { error.Set(tokenizer_domain, "Space expected after closing '\"'"); return nullptr; |