Skip to content

Commit 66b8515

Browse files
update jsoncons
1 parent dbd4f33 commit 66b8515

File tree

86 files changed

+4021
-3384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+4021
-3384
lines changed

module/lib/jsoncons/basic_json.hpp

Lines changed: 79 additions & 79 deletions
Large diffs are not rendered by default.

module/lib/jsoncons/bigint.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ class basic_bigint : protected detail::basic_bigint_base<Allocator>
231231
data_ = std::allocator_traits<real_allocator_type>::allocate(alloc, capacity_);
232232
JSONCONS_TRY
233233
{
234-
std::allocator_traits<real_allocator_type>::construct(alloc, traits_extension::to_plain_pointer(data_));
234+
std::allocator_traits<real_allocator_type>::construct(alloc, extension_traits::to_plain_pointer(data_));
235235
}
236236
JSONCONS_CATCH(...)
237237
{
@@ -246,7 +246,7 @@ class basic_bigint : protected detail::basic_bigint_base<Allocator>
246246
{
247247
real_allocator_type alloc(a);
248248

249-
std::allocator_traits<real_allocator_type>::destroy(alloc, traits_extension::to_plain_pointer(data_));
249+
std::allocator_traits<real_allocator_type>::destroy(alloc, extension_traits::to_plain_pointer(data_));
250250
std::allocator_traits<real_allocator_type>::deallocate(alloc, data_,capacity_);
251251
}
252252
}

module/lib/jsoncons/byte_string.hpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include <jsoncons/config/jsoncons_config.hpp>
2222
#include <jsoncons/json_exception.hpp>
2323
#include <jsoncons/conv_error.hpp>
24-
#include <jsoncons/traits_extension.hpp>
24+
#include <jsoncons/extension_traits.hpp>
2525

2626
namespace jsoncons {
2727

@@ -90,7 +90,7 @@ namespace detail {
9090
}
9191

9292
template <class InputIt, class F, class Container>
93-
typename std::enable_if<traits_extension::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
93+
typename std::enable_if<extension_traits::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
9494
decode_base64_generic(InputIt first, InputIt last,
9595
const uint8_t reverse_alphabet[256],
9696
F f,
@@ -107,7 +107,7 @@ namespace detail {
107107
return decode_result<InputIt>{first, conv_errc::conversion_failed};
108108
}
109109

110-
a4[i++] = *first++;
110+
a4[i++] = static_cast<uint8_t>(*first++);
111111
if (i == 4)
112112
{
113113
for (i = 0; i < 4; ++i)
@@ -205,7 +205,7 @@ namespace detail {
205205
// decode
206206

207207
template <class InputIt, class Container>
208-
typename std::enable_if<traits_extension::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
208+
typename std::enable_if<extension_traits::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
209209
decode_base64url(InputIt first, InputIt last, Container& result)
210210
{
211211
static constexpr uint8_t reverse_alphabet[256] = {
@@ -233,7 +233,7 @@ namespace detail {
233233
}
234234

235235
template <class InputIt, class Container>
236-
typename std::enable_if<traits_extension::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
236+
typename std::enable_if<extension_traits::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
237237
decode_base64(InputIt first, InputIt last, Container& result)
238238
{
239239
static constexpr uint8_t reverse_alphabet[256] = {
@@ -261,7 +261,7 @@ namespace detail {
261261
}
262262

263263
template <class InputIt,class Container>
264-
typename std::enable_if<traits_extension::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
264+
typename std::enable_if<extension_traits::is_back_insertable_byte_container<Container>::value,decode_result<InputIt>>::type
265265
decode_base16(InputIt first, InputIt last, Container& result)
266266
{
267267
std::size_t len = std::distance(first,last);
@@ -277,11 +277,11 @@ namespace detail {
277277
auto a = *it++;
278278
if (a >= '0' && a <= '9')
279279
{
280-
val = (a - '0') << 4;
280+
val = static_cast<uint8_t>(a - '0') << 4;
281281
}
282282
else if ((a | 0x20) >= 'a' && (a | 0x20) <= 'f')
283283
{
284-
val = ((a | 0x20) - 'a' + 10) << 4;
284+
val = (static_cast<uint8_t>((a | 0x20) - 'a') + 10) << 4;
285285
}
286286
else
287287
{
@@ -357,7 +357,7 @@ namespace detail {
357357

358358
template <class Container>
359359
constexpr explicit byte_string_view(const Container& cont,
360-
typename std::enable_if<traits_extension::is_byte_sequence<Container>::value,int>::type = 0)
360+
typename std::enable_if<extension_traits::is_byte_sequence<Container>::value,int>::type = 0)
361361
: data_(reinterpret_cast<const uint8_t*>(cont.data())), size_(cont.size())
362362
{
363363
}
@@ -576,12 +576,12 @@ namespace detail {
576576
void assign(const uint8_t* s, std::size_t count)
577577
{
578578
data_.clear();
579-
data_.insert(s, s+count);
579+
data_.insert(data_.end(), s, s+count);
580580
}
581581

582582
void append(const uint8_t* s, std::size_t count)
583583
{
584-
data_.insert(s, s+count);
584+
data_.insert(data_.end(), s, s+count);
585585
}
586586

587587
void clear()
@@ -801,7 +801,7 @@ namespace detail {
801801

802802
using byte_string = basic_byte_string<std::allocator<uint8_t>>;
803803

804-
namespace traits_extension {
804+
namespace extension_traits {
805805

806806
template <typename T>
807807
struct is_basic_byte_string
@@ -813,7 +813,7 @@ namespace detail {
813813
: std::true_type
814814
{};
815815

816-
} // namespace traits_extension
816+
} // namespace extension_traits
817817

818818
} // namespace jsoncons
819819

module/lib/jsoncons/config/jsoncons_config.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,10 +298,14 @@ namespace jsoncons {
298298

299299
#if defined(__clang__)
300300
#define JSONCONS_HAS_STD_REGEX 1
301+
#define JSONCONS_HAS_STATEFUL_ALLOCATOR 1
301302
#elif (defined(__GNUC__) && (__GNUC__ == 4)) && (defined(__GNUC__) && __GNUC_MINOR__ < 9)
302303
// GCC 4.8 has broken regex support: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
304+
// gcc 4.8 basic_string doesn't satisfy C++11 allocator requirements
305+
// and gcc doesn't support allocators with no default constructor
303306
#else
304307
#define JSONCONS_HAS_STD_REGEX 1
308+
#define JSONCONS_HAS_STATEFUL_ALLOCATOR 1
305309
#endif
306310

307311
#endif // JSONCONS_CONFIG_JSONCONS_CONFIG_HPP

module/lib/jsoncons/config/version.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
#define JSONCONS_VERSION_MAJOR 0
1313
#define JSONCONS_VERSION_MINOR 170
14-
#define JSONCONS_VERSION_PATCH 0
14+
#define JSONCONS_VERSION_PATCH 2
1515

1616
namespace jsoncons {
1717

module/lib/jsoncons/decode_json.hpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ namespace jsoncons {
2020
// decode_json
2121

2222
template <class T, class Source>
23-
typename std::enable_if<traits_extension::is_basic_json<T>::value &&
24-
traits_extension::is_sequence_of<Source,typename T::char_type>::value,T>::type
23+
typename std::enable_if<extension_traits::is_basic_json<T>::value &&
24+
extension_traits::is_sequence_of<Source,typename T::char_type>::value,T>::type
2525
decode_json(const Source& s,
2626
const basic_json_decode_options<typename Source::value_type>& options = basic_json_decode_options<typename Source::value_type>())
2727
{
@@ -38,8 +38,8 @@ namespace jsoncons {
3838
}
3939

4040
template <class T, class Source>
41-
typename std::enable_if<!traits_extension::is_basic_json<T>::value &&
42-
traits_extension::is_char_sequence<Source>::value,T>::type
41+
typename std::enable_if<!extension_traits::is_basic_json<T>::value &&
42+
extension_traits::is_char_sequence<Source>::value,T>::type
4343
decode_json(const Source& s,
4444
const basic_json_decode_options<typename Source::value_type>& options = basic_json_decode_options<typename Source::value_type>())
4545
{
@@ -57,7 +57,7 @@ namespace jsoncons {
5757
}
5858

5959
template <class T, class CharT>
60-
typename std::enable_if<traits_extension::is_basic_json<T>::value,T>::type
60+
typename std::enable_if<extension_traits::is_basic_json<T>::value,T>::type
6161
decode_json(std::basic_istream<CharT>& is,
6262
const basic_json_decode_options<CharT>& options = basic_json_decode_options<CharT>())
6363
{
@@ -72,7 +72,7 @@ namespace jsoncons {
7272
}
7373

7474
template <class T, class CharT>
75-
typename std::enable_if<!traits_extension::is_basic_json<T>::value,T>::type
75+
typename std::enable_if<!extension_traits::is_basic_json<T>::value,T>::type
7676
decode_json(std::basic_istream<CharT>& is,
7777
const basic_json_decode_options<CharT>& options = basic_json_decode_options<CharT>())
7878
{
@@ -89,7 +89,7 @@ namespace jsoncons {
8989
}
9090

9191
template <class T, class InputIt>
92-
typename std::enable_if<traits_extension::is_basic_json<T>::value,T>::type
92+
typename std::enable_if<extension_traits::is_basic_json<T>::value,T>::type
9393
decode_json(InputIt first, InputIt last,
9494
const basic_json_decode_options<typename std::iterator_traits<InputIt>::value_type>& options =
9595
basic_json_decode_options<typename std::iterator_traits<InputIt>::value_type>())
@@ -107,7 +107,7 @@ namespace jsoncons {
107107
}
108108

109109
template <class T, class InputIt>
110-
typename std::enable_if<!traits_extension::is_basic_json<T>::value,T>::type
110+
typename std::enable_if<!extension_traits::is_basic_json<T>::value,T>::type
111111
decode_json(InputIt first, InputIt last,
112112
const basic_json_decode_options<typename std::iterator_traits<InputIt>::value_type>& options =
113113
basic_json_decode_options<typename std::iterator_traits<InputIt>::value_type>())
@@ -128,8 +128,8 @@ namespace jsoncons {
128128
// With leading allocator parameter
129129

130130
template <class T,class Source,class TempAllocator>
131-
typename std::enable_if<traits_extension::is_basic_json<T>::value &&
132-
traits_extension::is_sequence_of<Source,typename T::char_type>::value,T>::type
131+
typename std::enable_if<extension_traits::is_basic_json<T>::value &&
132+
extension_traits::is_sequence_of<Source,typename T::char_type>::value,T>::type
133133
decode_json(temp_allocator_arg_t, const TempAllocator& temp_alloc,
134134
const Source& s,
135135
const basic_json_decode_options<typename Source::value_type>& options = basic_json_decode_options<typename Source::value_type>())
@@ -148,8 +148,8 @@ namespace jsoncons {
148148
}
149149

150150
template <class T,class Source,class TempAllocator>
151-
typename std::enable_if<!traits_extension::is_basic_json<T>::value &&
152-
traits_extension::is_char_sequence<Source>::value,T>::type
151+
typename std::enable_if<!extension_traits::is_basic_json<T>::value &&
152+
extension_traits::is_char_sequence<Source>::value,T>::type
153153
decode_json(temp_allocator_arg_t, const TempAllocator& temp_alloc,
154154
const Source& s,
155155
const basic_json_decode_options<typename Source::value_type>& options = basic_json_decode_options<typename Source::value_type>())
@@ -169,7 +169,7 @@ namespace jsoncons {
169169
}
170170

171171
template <class T,class CharT,class TempAllocator>
172-
typename std::enable_if<traits_extension::is_basic_json<T>::value,T>::type
172+
typename std::enable_if<extension_traits::is_basic_json<T>::value,T>::type
173173
decode_json(temp_allocator_arg_t, const TempAllocator& temp_alloc,
174174
std::basic_istream<CharT>& is,
175175
const basic_json_decode_options<CharT>& options = basic_json_decode_options<CharT>())
@@ -186,7 +186,7 @@ namespace jsoncons {
186186
}
187187

188188
template <class T,class CharT,class TempAllocator>
189-
typename std::enable_if<!traits_extension::is_basic_json<T>::value,T>::type
189+
typename std::enable_if<!extension_traits::is_basic_json<T>::value,T>::type
190190
decode_json(temp_allocator_arg_t, const TempAllocator& temp_alloc,
191191
std::basic_istream<CharT>& is,
192192
const basic_json_decode_options<CharT>& options = basic_json_decode_options<CharT>())

0 commit comments

Comments
 (0)