Merge 54c966979c into 19d2dec8b6
This commit is contained in:
commit
3d45569fd3
58
src/json.hpp
58
src/json.hpp
@ -1970,59 +1970,60 @@ class basic_json
|
|||||||
case value_t::object:
|
case value_t::object:
|
||||||
{
|
{
|
||||||
object = create<object_t>();
|
object = create<object_t>();
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::array:
|
case value_t::array:
|
||||||
{
|
{
|
||||||
array = create<array_t>();
|
array = create<array_t>();
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::string:
|
case value_t::string:
|
||||||
{
|
{
|
||||||
string = create<string_t>("");
|
string = create<string_t>("");
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::boolean:
|
case value_t::boolean:
|
||||||
{
|
{
|
||||||
boolean = boolean_t(false);
|
boolean = boolean_t(false);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::number_integer:
|
case value_t::number_integer:
|
||||||
{
|
{
|
||||||
number_integer = number_integer_t(0);
|
number_integer = number_integer_t(0);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::number_unsigned:
|
case value_t::number_unsigned:
|
||||||
{
|
{
|
||||||
number_unsigned = number_unsigned_t(0);
|
number_unsigned = number_unsigned_t(0);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::number_float:
|
case value_t::number_float:
|
||||||
{
|
{
|
||||||
number_float = number_float_t(0.0);
|
number_float = number_float_t(0.0);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::null:
|
case value_t::null:
|
||||||
{
|
{
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
case value_t::discarded:
|
||||||
{
|
{
|
||||||
if (t == value_t::null)
|
if (t == value_t::null)
|
||||||
{
|
{
|
||||||
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 2.1.1")); // LCOV_EXCL_LINE
|
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 2.1.1")); // LCOV_EXCL_LINE
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// constructor for strings
|
/// constructor for strings
|
||||||
@ -2824,7 +2825,7 @@ class basic_json
|
|||||||
AllocatorType<object_t> alloc;
|
AllocatorType<object_t> alloc;
|
||||||
alloc.destroy(m_value.object);
|
alloc.destroy(m_value.object);
|
||||||
alloc.deallocate(m_value.object, 1);
|
alloc.deallocate(m_value.object, 1);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::array:
|
case value_t::array:
|
||||||
@ -2832,7 +2833,7 @@ class basic_json
|
|||||||
AllocatorType<array_t> alloc;
|
AllocatorType<array_t> alloc;
|
||||||
alloc.destroy(m_value.array);
|
alloc.destroy(m_value.array);
|
||||||
alloc.deallocate(m_value.array, 1);
|
alloc.deallocate(m_value.array, 1);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::string:
|
case value_t::string:
|
||||||
@ -2840,15 +2841,21 @@ class basic_json
|
|||||||
AllocatorType<string_t> alloc;
|
AllocatorType<string_t> alloc;
|
||||||
alloc.destroy(m_value.string);
|
alloc.destroy(m_value.string);
|
||||||
alloc.deallocate(m_value.string, 1);
|
alloc.deallocate(m_value.string, 1);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
case value_t::null:
|
||||||
|
case value_t::boolean:
|
||||||
|
case value_t::number_integer:
|
||||||
|
case value_t::number_unsigned:
|
||||||
|
case value_t::number_float:
|
||||||
|
case value_t::discarded:
|
||||||
{
|
{
|
||||||
// all other types need no specific destructor
|
// all other types need no specific destructor
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
@ -9379,7 +9386,6 @@ class basic_json
|
|||||||
@since version 1.0.0, public since 2.1.0
|
@since version 1.0.0, public since 2.1.0
|
||||||
*/
|
*/
|
||||||
std::string type_name() const
|
std::string type_name() const
|
||||||
{
|
|
||||||
{
|
{
|
||||||
switch (m_type)
|
switch (m_type)
|
||||||
{
|
{
|
||||||
@ -9395,10 +9401,12 @@ class basic_json
|
|||||||
return "boolean";
|
return "boolean";
|
||||||
case value_t::discarded:
|
case value_t::discarded:
|
||||||
return "discarded";
|
return "discarded";
|
||||||
default:
|
case value_t::number_unsigned:
|
||||||
|
case value_t::number_integer:
|
||||||
|
case value_t::number_float:
|
||||||
return "number";
|
return "number";
|
||||||
}
|
}
|
||||||
}
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -12137,9 +12145,7 @@ basic_json_parser_74:
|
|||||||
strtonum num_converter(reinterpret_cast<const char*>(m_start),
|
strtonum num_converter(reinterpret_cast<const char*>(m_start),
|
||||||
reinterpret_cast<const char*>(m_cursor));
|
reinterpret_cast<const char*>(m_cursor));
|
||||||
|
|
||||||
switch (token)
|
if (token == lexer::token_type::value_unsigned)
|
||||||
{
|
|
||||||
case lexer::token_type::value_unsigned:
|
|
||||||
{
|
{
|
||||||
number_unsigned_t val;
|
number_unsigned_t val;
|
||||||
if (num_converter.to(val))
|
if (num_converter.to(val))
|
||||||
@ -12149,10 +12155,9 @@ basic_json_parser_74:
|
|||||||
result.m_value = val;
|
result.m_value = val;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case lexer::token_type::value_integer:
|
if (token == lexer::token_type::value_integer)
|
||||||
{
|
{
|
||||||
number_integer_t val;
|
number_integer_t val;
|
||||||
if (num_converter.to(val))
|
if (num_converter.to(val))
|
||||||
@ -12162,13 +12167,6 @@ basic_json_parser_74:
|
|||||||
result.m_value = val;
|
result.m_value = val;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse float (either explicitly or because a previous conversion
|
// parse float (either explicitly or because a previous conversion
|
||||||
|
|||||||
@ -1970,59 +1970,60 @@ class basic_json
|
|||||||
case value_t::object:
|
case value_t::object:
|
||||||
{
|
{
|
||||||
object = create<object_t>();
|
object = create<object_t>();
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::array:
|
case value_t::array:
|
||||||
{
|
{
|
||||||
array = create<array_t>();
|
array = create<array_t>();
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::string:
|
case value_t::string:
|
||||||
{
|
{
|
||||||
string = create<string_t>("");
|
string = create<string_t>("");
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::boolean:
|
case value_t::boolean:
|
||||||
{
|
{
|
||||||
boolean = boolean_t(false);
|
boolean = boolean_t(false);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::number_integer:
|
case value_t::number_integer:
|
||||||
{
|
{
|
||||||
number_integer = number_integer_t(0);
|
number_integer = number_integer_t(0);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::number_unsigned:
|
case value_t::number_unsigned:
|
||||||
{
|
{
|
||||||
number_unsigned = number_unsigned_t(0);
|
number_unsigned = number_unsigned_t(0);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::number_float:
|
case value_t::number_float:
|
||||||
{
|
{
|
||||||
number_float = number_float_t(0.0);
|
number_float = number_float_t(0.0);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::null:
|
case value_t::null:
|
||||||
{
|
{
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
case value_t::discarded:
|
||||||
{
|
{
|
||||||
if (t == value_t::null)
|
if (t == value_t::null)
|
||||||
{
|
{
|
||||||
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 2.1.1")); // LCOV_EXCL_LINE
|
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 2.1.1")); // LCOV_EXCL_LINE
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// constructor for strings
|
/// constructor for strings
|
||||||
@ -2824,7 +2825,7 @@ class basic_json
|
|||||||
AllocatorType<object_t> alloc;
|
AllocatorType<object_t> alloc;
|
||||||
alloc.destroy(m_value.object);
|
alloc.destroy(m_value.object);
|
||||||
alloc.deallocate(m_value.object, 1);
|
alloc.deallocate(m_value.object, 1);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::array:
|
case value_t::array:
|
||||||
@ -2832,7 +2833,7 @@ class basic_json
|
|||||||
AllocatorType<array_t> alloc;
|
AllocatorType<array_t> alloc;
|
||||||
alloc.destroy(m_value.array);
|
alloc.destroy(m_value.array);
|
||||||
alloc.deallocate(m_value.array, 1);
|
alloc.deallocate(m_value.array, 1);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case value_t::string:
|
case value_t::string:
|
||||||
@ -2840,15 +2841,21 @@ class basic_json
|
|||||||
AllocatorType<string_t> alloc;
|
AllocatorType<string_t> alloc;
|
||||||
alloc.destroy(m_value.string);
|
alloc.destroy(m_value.string);
|
||||||
alloc.deallocate(m_value.string, 1);
|
alloc.deallocate(m_value.string, 1);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
case value_t::null:
|
||||||
|
case value_t::boolean:
|
||||||
|
case value_t::number_integer:
|
||||||
|
case value_t::number_unsigned:
|
||||||
|
case value_t::number_float:
|
||||||
|
case value_t::discarded:
|
||||||
{
|
{
|
||||||
// all other types need no specific destructor
|
// all other types need no specific destructor
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
@ -9379,7 +9386,6 @@ class basic_json
|
|||||||
@since version 1.0.0, public since 2.1.0
|
@since version 1.0.0, public since 2.1.0
|
||||||
*/
|
*/
|
||||||
std::string type_name() const
|
std::string type_name() const
|
||||||
{
|
|
||||||
{
|
{
|
||||||
switch (m_type)
|
switch (m_type)
|
||||||
{
|
{
|
||||||
@ -9395,10 +9401,12 @@ class basic_json
|
|||||||
return "boolean";
|
return "boolean";
|
||||||
case value_t::discarded:
|
case value_t::discarded:
|
||||||
return "discarded";
|
return "discarded";
|
||||||
default:
|
case value_t::number_unsigned:
|
||||||
|
case value_t::number_integer:
|
||||||
|
case value_t::number_float:
|
||||||
return "number";
|
return "number";
|
||||||
}
|
}
|
||||||
}
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -11170,9 +11178,7 @@ class basic_json
|
|||||||
strtonum num_converter(reinterpret_cast<const char*>(m_start),
|
strtonum num_converter(reinterpret_cast<const char*>(m_start),
|
||||||
reinterpret_cast<const char*>(m_cursor));
|
reinterpret_cast<const char*>(m_cursor));
|
||||||
|
|
||||||
switch (token)
|
if (token == lexer::token_type::value_unsigned)
|
||||||
{
|
|
||||||
case lexer::token_type::value_unsigned:
|
|
||||||
{
|
{
|
||||||
number_unsigned_t val;
|
number_unsigned_t val;
|
||||||
if (num_converter.to(val))
|
if (num_converter.to(val))
|
||||||
@ -11182,10 +11188,9 @@ class basic_json
|
|||||||
result.m_value = val;
|
result.m_value = val;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case lexer::token_type::value_integer:
|
if (token == lexer::token_type::value_integer)
|
||||||
{
|
{
|
||||||
number_integer_t val;
|
number_integer_t val;
|
||||||
if (num_converter.to(val))
|
if (num_converter.to(val))
|
||||||
@ -11195,13 +11200,6 @@ class basic_json
|
|||||||
result.m_value = val;
|
result.m_value = val;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse float (either explicitly or because a previous conversion
|
// parse float (either explicitly or because a previous conversion
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user