Skip to content

Commit e18f6f2

Browse files
authored
Fix compilation with GCC 4.8/4.9, which was broken by commit 53fab3a. (microsoft#1379)
1 parent f4124a9 commit e18f6f2

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

Release/src/json/json_parsing.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,7 +1040,7 @@ std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseArray(
10401040
case JSON_Parser<CharType>::Token::TKN_CloseBracket:
10411041
GetNextToken(tkn);
10421042
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());
10441044
default:
10451045
SetErrorCode(tkn, json_error::malformed_array_literal);
10461046
return utility::details::make_unique<web::json::details::_Null>();
@@ -1058,6 +1058,7 @@ template<typename CharType>
10581058
std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseValue(
10591059
typename JSON_Parser<CharType>::Token& tkn)
10601060
{
1061+
typedef std::unique_ptr<web::json::details::_Value> Vptr;
10611062
switch (tkn.kind)
10621063
{
10631064
case JSON_Parser<CharType>::Token::TKN_OpenBrace:
@@ -1070,15 +1071,15 @@ std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseValue(
10701071
}
10711072
case JSON_Parser<CharType>::Token::TKN_StringLiteral:
10721073
{
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),
10741075
tkn.has_unescape_symbol);
10751076
GetNextToken(tkn);
10761077
if (tkn.m_error) return utility::details::make_unique<web::json::details::_Null>();
10771078
return value;
10781079
}
10791080
case JSON_Parser<CharType>::Token::TKN_IntegerLiteral:
10801081
{
1081-
std::unique_ptr<web::json::details::_Number> value;
1082+
Vptr value;
10821083
if (tkn.signed_number)
10831084
value = utility::details::make_unique<web::json::details::_Number>(tkn.int64_val);
10841085
else
@@ -1090,14 +1091,14 @@ std::unique_ptr<web::json::details::_Value> JSON_Parser<CharType>::_ParseValue(
10901091
}
10911092
case JSON_Parser<CharType>::Token::TKN_NumberLiteral:
10921093
{
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);
10941095
GetNextToken(tkn);
10951096
if (tkn.m_error) return utility::details::make_unique<web::json::details::_Null>();
10961097
return value;
10971098
}
10981099
case JSON_Parser<CharType>::Token::TKN_BooleanLiteral:
10991100
{
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);
11011102
GetNextToken(tkn);
11021103
if (tkn.m_error) return utility::details::make_unique<web::json::details::_Null>();
11031104
return value;

0 commit comments

Comments
 (0)