Skip to content

Commit 8d0ff5f

Browse files
author
Ruslan Nigmatullin
committed
use switch
1 parent aa0b113 commit 8d0ff5f

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/include/grpc_transcoding/path_matcher.h

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -224,20 +224,23 @@ inline int hex_digit_to_int(char c) {
224224
// also return what character is escaped.
225225
bool GetEscapedChar(const std::string& src, size_t i,
226226
UrlUnescapeSpec unescape_spec, char* out) {
227-
const bool unescape_slash_char =
228-
unescape_spec == UrlUnescapeSpec::kAllCharacters;
229-
const bool unescape_reserved_chars =
230-
(unescape_spec == UrlUnescapeSpec::kAllCharacters) ||
231-
(unescape_spec == UrlUnescapeSpec::kAllCharactersExceptSlash);
232227
if (i + 2 < src.size() && src[i] == '%') {
233228
if (ascii_isxdigit(src[i + 1]) && ascii_isxdigit(src[i + 2])) {
234229
char c =
235230
(hex_digit_to_int(src[i + 1]) << 4) | hex_digit_to_int(src[i + 2]);
236-
if (!unescape_slash_char && c == '/') {
237-
return false;
238-
}
239-
if (!unescape_reserved_chars && c != '/' && IsReservedChar(c)) {
240-
return false;
231+
switch (unescape_spec) {
232+
case UrlUnescapeSpec::kAllCharactersExceptReserved:
233+
if (IsReservedChar(c)) {
234+
return false;
235+
}
236+
break;
237+
case UrlUnescapeSpec::kAllCharactersExceptSlash:
238+
if (c == '/') {
239+
return false;
240+
}
241+
break;
242+
case UrlUnescapeSpec::kAllCharacters:
243+
break;
241244
}
242245
*out = c;
243246
return true;

0 commit comments

Comments
 (0)