This commit is contained in:
Cristian Maglie 2017-05-04 06:57:26 +00:00 committed by GitHub
commit 3d45569fd3
2 changed files with 112 additions and 116 deletions

View File

@ -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

View File

@ -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