diff options
| author | 2018-08-23 14:44:41 -0400 | |
|---|---|---|
| committer | 2018-08-23 14:44:51 -0400 | |
| commit | 06487c2c8dc29f9393338761dbe107be865e4808 (patch) | |
| tree | 45f2886b8f6171522ac0e994adb1af997aa240a5 /src/common/hex_util.cpp | |
| parent | Merge pull request #1160 from bunnei/surface-reserve (diff) | |
| download | yuzu-06487c2c8dc29f9393338761dbe107be865e4808.tar.gz yuzu-06487c2c8dc29f9393338761dbe107be865e4808.tar.xz yuzu-06487c2c8dc29f9393338761dbe107be865e4808.zip | |
hex_util: Replace logic_errors with LOG_CRITICAL
Makes it so malformed hex strings do not crash the entire program.
Diffstat (limited to 'src/common/hex_util.cpp')
| -rw-r--r-- | src/common/hex_util.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/common/hex_util.cpp b/src/common/hex_util.cpp index 609144def..8e0a9e46f 100644 --- a/src/common/hex_util.cpp +++ b/src/common/hex_util.cpp | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include "common/hex_util.h" | 5 | #include "common/hex_util.h" |
| 6 | #include "common/logging/log.h" | ||
| 6 | 7 | ||
| 7 | namespace Common { | 8 | namespace Common { |
| 8 | 9 | ||
| @@ -13,18 +14,29 @@ u8 ToHexNibble(char c1) { | |||
| 13 | return c1 - 87; | 14 | return c1 - 87; |
| 14 | if (c1 >= 48 && c1 <= 57) | 15 | if (c1 >= 48 && c1 <= 57) |
| 15 | return c1 - 48; | 16 | return c1 - 48; |
| 16 | throw std::logic_error("Invalid hex digit"); | 17 | LOG_ERROR(Common, "Invalid hex digit: 0x{:02X}", c1); |
| 18 | return 0; | ||
| 17 | } | 19 | } |
| 18 | 20 | ||
| 19 | std::array<u8, 16> operator""_array16(const char* str, size_t len) { | 21 | std::array<u8, 16> operator""_array16(const char* str, size_t len) { |
| 20 | if (len != 32) | 22 | if (len != 32) { |
| 21 | throw std::logic_error("Not of correct size."); | 23 | LOG_ERROR(Common, |
| 24 | "Attempting to parse string to array that is not of correct size (expected=32, " | ||
| 25 | "actual={}).", | ||
| 26 | len); | ||
| 27 | return {}; | ||
| 28 | } | ||
| 22 | return HexStringToArray<16>(str); | 29 | return HexStringToArray<16>(str); |
| 23 | } | 30 | } |
| 24 | 31 | ||
| 25 | std::array<u8, 32> operator""_array32(const char* str, size_t len) { | 32 | std::array<u8, 32> operator""_array32(const char* str, size_t len) { |
| 26 | if (len != 64) | 33 | if (len != 64) { |
| 27 | throw std::logic_error("Not of correct size."); | 34 | LOG_ERROR(Common, |
| 35 | "Attempting to parse string to array that is not of correct size (expected=64, " | ||
| 36 | "actual={}).", | ||
| 37 | len); | ||
| 38 | return {}; | ||
| 39 | } | ||
| 28 | return HexStringToArray<32>(str); | 40 | return HexStringToArray<32>(str); |
| 29 | } | 41 | } |
| 30 | 42 | ||