summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-08-23 14:44:41 -0400
committerGravatar Zach Hilman2018-08-23 14:44:51 -0400
commit06487c2c8dc29f9393338761dbe107be865e4808 (patch)
tree45f2886b8f6171522ac0e994adb1af997aa240a5
parentMerge pull request #1160 from bunnei/surface-reserve (diff)
downloadyuzu-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.
-rw-r--r--src/common/hex_util.cpp22
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
7namespace Common { 8namespace 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
19std::array<u8, 16> operator""_array16(const char* str, size_t len) { 21std::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
25std::array<u8, 32> operator""_array32(const char* str, size_t len) { 32std::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