diff options
author | dan sinclair <dsinclair@chromium.org> | 2015-10-29 15:08:50 -0400 |
---|---|---|
committer | dan sinclair <dsinclair@chromium.org> | 2015-10-29 15:08:50 -0400 |
commit | 23d576f0b498bd4f37ef2175916223a2e5ea0324 (patch) | |
tree | b6561f688e88f00b437eba6128c1b5129d813a7e /core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp | |
parent | 589f7e0a57675efce9810c15a3e9b7c49bf0bc90 (diff) | |
download | pdfium-23d576f0b498bd4f37ef2175916223a2e5ea0324.tar.xz |
Revert "Cleanup some numeric code."
This reverts commit 589f7e0a57675efce9810c15a3e9b7c49bf0bc90.
Broke the build on Mac, unable to find std::isdigit.
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/1428853002 .
Diffstat (limited to 'core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp')
-rw-r--r-- | core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp index eaff29d812..255d0ce29c 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp @@ -8,7 +8,6 @@ #include "../../../include/fpdfapi/fpdf_parser.h" #include "../../../include/fpdfapi/fpdf_module.h" #include "../../../include/fxcodec/fx_codec.h" -#include "../../../include/fxcrt/fx_ext.h" #define _STREAM_MAX_SIZE_ 20 * 1024 * 1024 @@ -136,20 +135,23 @@ FX_DWORD _HexDecode(const uint8_t* src_buf, continue; int digit; - if (std::isxdigit(ch)) { - digit = HexCharToDigit(ch); + if (ch <= '9' && ch >= '0') { + digit = ch - '0'; + } else if (ch <= 'f' && ch >= 'a') { + digit = ch - 'a' + 10; + } else if (ch <= 'F' && ch >= 'A') { + digit = ch - 'A' + 10; } else if (ch == '>') { i++; break; } else { continue; } - - if (bFirstDigit) + if (bFirstDigit) { dest_buf[dest_size] = digit * 16; - else + } else { dest_buf[dest_size++] += digit; - + } bFirstDigit = !bFirstDigit; } if (!bFirstDigit) { |