@@ -1040,7 +1040,7 @@ std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseArray(
1040
1040
case JSON_Parser<CharType>::Token::TKN_CloseBracket:
1041
1041
GetNextToken (tkn);
1042
1042
if (tkn.m_error ) return utility::details::make_unique<web::json::details::_Null>();
1043
- return result;
1043
+ return std::unique_ptr<web::json::details::_Value>( result. release ()) ;
1044
1044
default :
1045
1045
SetErrorCode (tkn, json_error::malformed_array_literal);
1046
1046
return utility::details::make_unique<web::json::details::_Null>();
@@ -1058,6 +1058,7 @@ template<typename CharType>
1058
1058
std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseValue(
1059
1059
typename JSON_Parser<CharType>::Token& tkn)
1060
1060
{
1061
+ typedef std::unique_ptr<web::json::details::_Value> Vptr;
1061
1062
switch (tkn.kind )
1062
1063
{
1063
1064
case JSON_Parser<CharType>::Token::TKN_OpenBrace:
@@ -1070,15 +1071,15 @@ std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseValue(
1070
1071
}
1071
1072
case JSON_Parser<CharType>::Token::TKN_StringLiteral:
1072
1073
{
1073
- auto value = utility::details::make_unique<web::json::details::_String>(std::move (tkn.string_val ),
1074
+ Vptr value = utility::details::make_unique<web::json::details::_String>(std::move (tkn.string_val ),
1074
1075
tkn.has_unescape_symbol );
1075
1076
GetNextToken (tkn);
1076
1077
if (tkn.m_error ) return utility::details::make_unique<web::json::details::_Null>();
1077
1078
return value;
1078
1079
}
1079
1080
case JSON_Parser<CharType>::Token::TKN_IntegerLiteral:
1080
1081
{
1081
- std::unique_ptr<web::json::details::_Number> value;
1082
+ Vptr value;
1082
1083
if (tkn.signed_number )
1083
1084
value = utility::details::make_unique<web::json::details::_Number>(tkn.int64_val );
1084
1085
else
@@ -1090,14 +1091,14 @@ std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseValue(
1090
1091
}
1091
1092
case JSON_Parser<CharType>::Token::TKN_NumberLiteral:
1092
1093
{
1093
- auto value = utility::details::make_unique<web::json::details::_Number>(tkn.double_val );
1094
+ Vptr value = utility::details::make_unique<web::json::details::_Number>(tkn.double_val );
1094
1095
GetNextToken (tkn);
1095
1096
if (tkn.m_error ) return utility::details::make_unique<web::json::details::_Null>();
1096
1097
return value;
1097
1098
}
1098
1099
case JSON_Parser<CharType>::Token::TKN_BooleanLiteral:
1099
1100
{
1100
- auto value = utility::details::make_unique<web::json::details::_Boolean>(tkn.boolean_val );
1101
+ Vptr value = utility::details::make_unique<web::json::details::_Boolean>(tkn.boolean_val );
1101
1102
GetNextToken (tkn);
1102
1103
if (tkn.m_error ) return utility::details::make_unique<web::json::details::_Null>();
1103
1104
return value;
0 commit comments