Commit e7889ec5dc3ae5caf942bb242f802b7a19a6b2c5
1 parent
e4fe0d5c
Refactor st_top case in QPDFTokenizer::handleCharacter
Showing
1 changed file
with
36 additions
and
33 deletions
libqpdf/QPDFTokenizer.cc
| @@ -222,7 +222,7 @@ QPDFTokenizer::handleCharacter(char ch) | @@ -222,7 +222,7 @@ QPDFTokenizer::handleCharacter(char ch) | ||
| 222 | "INTERNAL ERROR: QPDF tokenizer presented character " | 222 | "INTERNAL ERROR: QPDF tokenizer presented character " |
| 223 | "while token is waiting"); | 223 | "while token is waiting"); |
| 224 | 224 | ||
| 225 | - case (st_top): | 225 | + case st_top: |
| 226 | // Note: we specifically do not use ctype here. It is | 226 | // Note: we specifically do not use ctype here. It is |
| 227 | // locale-dependent. | 227 | // locale-dependent. |
| 228 | if (isSpace(ch)) { | 228 | if (isSpace(ch)) { |
| @@ -254,40 +254,42 @@ QPDFTokenizer::handleCharacter(char ch) | @@ -254,40 +254,42 @@ QPDFTokenizer::handleCharacter(char ch) | ||
| 254 | this->state = st_gt; | 254 | this->state = st_gt; |
| 255 | return; | 255 | return; |
| 256 | 256 | ||
| 257 | - default: | 257 | + case (')'): |
| 258 | + this->type = tt_bad; | ||
| 259 | + QTC::TC("qpdf", "QPDFTokenizer bad )"); | ||
| 260 | + this->error_message = "unexpected )"; | ||
| 258 | this->val += ch; | 261 | this->val += ch; |
| 259 | - switch (ch) { | ||
| 260 | - case ')': | ||
| 261 | - this->type = tt_bad; | ||
| 262 | - QTC::TC("qpdf", "QPDFTokenizer bad )"); | ||
| 263 | - this->error_message = "unexpected )"; | ||
| 264 | - this->state = st_token_ready; | ||
| 265 | - return; | 262 | + this->state = st_token_ready; |
| 263 | + return; | ||
| 266 | 264 | ||
| 267 | - case '[': | ||
| 268 | - this->type = tt_array_open; | ||
| 269 | - this->state = st_token_ready; | ||
| 270 | - return; | 265 | + case '[': |
| 266 | + this->type = tt_array_open; | ||
| 267 | + this->state = st_token_ready; | ||
| 268 | + this->val += ch; | ||
| 269 | + return; | ||
| 271 | 270 | ||
| 272 | - case ']': | ||
| 273 | - this->type = tt_array_close; | ||
| 274 | - this->state = st_token_ready; | ||
| 275 | - return; | 271 | + case ']': |
| 272 | + this->type = tt_array_close; | ||
| 273 | + this->val += ch; | ||
| 274 | + this->state = st_token_ready; | ||
| 275 | + return; | ||
| 276 | 276 | ||
| 277 | - case '{': | ||
| 278 | - this->type = tt_brace_open; | ||
| 279 | - this->state = st_token_ready; | ||
| 280 | - return; | 277 | + case '{': |
| 278 | + this->type = tt_brace_open; | ||
| 279 | + this->state = st_token_ready; | ||
| 280 | + this->val += ch; | ||
| 281 | + return; | ||
| 281 | 282 | ||
| 282 | - case '}': | ||
| 283 | - this->type = tt_brace_close; | ||
| 284 | - this->state = st_token_ready; | ||
| 285 | - return; | 283 | + case '}': |
| 284 | + this->type = tt_brace_close; | ||
| 285 | + this->state = st_token_ready; | ||
| 286 | + this->val += ch; | ||
| 287 | + return; | ||
| 286 | 288 | ||
| 287 | - default: | ||
| 288 | - this->state = st_literal; | ||
| 289 | - return; | ||
| 290 | - } | 289 | + default: |
| 290 | + this->state = st_literal; | ||
| 291 | + this->val += ch; | ||
| 292 | + return; | ||
| 291 | } | 293 | } |
| 292 | 294 | ||
| 293 | case st_in_space: | 295 | case st_in_space: |
| @@ -297,10 +299,11 @@ QPDFTokenizer::handleCharacter(char ch) | @@ -297,10 +299,11 @@ QPDFTokenizer::handleCharacter(char ch) | ||
| 297 | this->unread_char = true; | 299 | this->unread_char = true; |
| 298 | this->char_to_unread = ch; | 300 | this->char_to_unread = ch; |
| 299 | this->state = st_token_ready; | 301 | this->state = st_token_ready; |
| 302 | + return; | ||
| 300 | } else { | 303 | } else { |
| 301 | this->val += ch; | 304 | this->val += ch; |
| 305 | + return; | ||
| 302 | } | 306 | } |
| 303 | - return; | ||
| 304 | 307 | ||
| 305 | case st_in_comment: | 308 | case st_in_comment: |
| 306 | if ((ch == '\r') || (ch == '\n')) { | 309 | if ((ch == '\r') || (ch == '\n')) { |
| @@ -345,7 +348,7 @@ QPDFTokenizer::handleCharacter(char ch) | @@ -345,7 +348,7 @@ QPDFTokenizer::handleCharacter(char ch) | ||
| 345 | } | 348 | } |
| 346 | return; | 349 | return; |
| 347 | 350 | ||
| 348 | - case st_in_string: | 351 | + case (st_in_string): |
| 349 | inString(ch); | 352 | inString(ch); |
| 350 | return; | 353 | return; |
| 351 | 354 | ||
| @@ -438,11 +441,11 @@ QPDFTokenizer::handleCharacter(char ch) | @@ -438,11 +441,11 @@ QPDFTokenizer::handleCharacter(char ch) | ||
| 438 | } | 441 | } |
| 439 | return; | 442 | return; |
| 440 | 443 | ||
| 441 | - case (st_in_hexstring): | 444 | + case st_in_hexstring: |
| 442 | inHexstring(ch); | 445 | inHexstring(ch); |
| 443 | return; | 446 | return; |
| 444 | 447 | ||
| 445 | - case (st_in_hexstring_2nd): | 448 | + case st_in_hexstring_2nd: |
| 446 | inHexstring2nd(ch); | 449 | inHexstring2nd(ch); |
| 447 | return; | 450 | return; |
| 448 | 451 |