From b4fa4091df9d09f35c6ff18f015ad6bd67135a6c Mon Sep 17 00:00:00 2001 From: Sandu Liviu Catalin Date: Fri, 16 Jul 2021 21:37:01 +0300 Subject: [PATCH] Fix undefined reference in SAJSON. --- vendor/SAJSON/include/sajson.h | 13 ++++++++----- vendor/SAJSON/sajson.cpp | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/vendor/SAJSON/include/sajson.h b/vendor/SAJSON/include/sajson.h index d9b07f82..d14eafa1 100644 --- a/vendor/SAJSON/include/sajson.h +++ b/vendor/SAJSON/include/sajson.h @@ -138,12 +138,17 @@ constexpr inline size_t make_element(tag t, size_t value) { // header. This trick courtesy of Rich Geldreich's Purple JSON parser. template struct globals_struct { + static const unsigned char parse_flags[256]; +}; +typedef globals_struct<> globals; + // clang-format off // bit 0 (1) - set if: plain ASCII string character // bit 1 (2) - set if: whitespace // bit 4 (0x10) - set if: 0-9 e E . - constexpr static const uint8_t parse_flags[256] = { + template + const unsigned char globals_struct::parse_flags[256] = { // 0 1 2 3 4 5 6 7 8 9 A B C D E F 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 0, 0, // 0 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1 @@ -162,15 +167,13 @@ struct globals_struct { }; // clang-format on -}; -typedef globals_struct<> globals; -constexpr inline bool is_plain_string_character(char c) { +inline bool is_plain_string_character(char c) { // return c >= 0x20 && c <= 0x7f && c != 0x22 && c != 0x5c; return (globals::parse_flags[static_cast(c)] & 1) != 0; } -constexpr inline bool is_whitespace(char c) { +inline bool is_whitespace(char c) { // return c == '\r' || c == '\n' || c == '\t' || c == ' '; return (globals::parse_flags[static_cast(c)] & 2) != 0; } diff --git a/vendor/SAJSON/sajson.cpp b/vendor/SAJSON/sajson.cpp index 63a9c237..c480e68c 100644 --- a/vendor/SAJSON/sajson.cpp +++ b/vendor/SAJSON/sajson.cpp @@ -2,6 +2,6 @@ namespace sajson { namespace internal { -template <> const uint8_t globals_struct::parse_flags[256]; +//template <> const uint8_t globals_struct::parse_flags[256]; } }