🔨 trying to fix the leak

Part 1: properly use forwarding
parent 38345fd0
...@@ -1130,7 +1130,7 @@ scan_number_done: ...@@ -1130,7 +1130,7 @@ scan_number_done:
} }
/// return current string value (implicitly resets the token; useful only once) /// return current string value (implicitly resets the token; useful only once)
std::string move_string() std::string&& move_string()
{ {
return std::move(token_buffer); return std::move(token_buffer);
} }
......
...@@ -953,7 +953,7 @@ class basic_json ...@@ -953,7 +953,7 @@ class basic_json
/// constructor for rvalue strings /// constructor for rvalue strings
json_value(string_t&& value) json_value(string_t&& value)
{ {
string = create<string_t>(std::move(value)); string = create<string_t>(std::forward < string_t&& > (value));
} }
/// constructor for objects /// constructor for objects
...@@ -965,7 +965,7 @@ class basic_json ...@@ -965,7 +965,7 @@ class basic_json
/// constructor for rvalue objects /// constructor for rvalue objects
json_value(object_t&& value) json_value(object_t&& value)
{ {
object = create<object_t>(std::move(value)); object = create<object_t>(std::forward < object_t&& > (value));
} }
/// constructor for arrays /// constructor for arrays
...@@ -977,7 +977,7 @@ class basic_json ...@@ -977,7 +977,7 @@ class basic_json
/// constructor for rvalue arrays /// constructor for rvalue arrays
json_value(array_t&& value) json_value(array_t&& value)
{ {
array = create<array_t>(std::move(value)); array = create<array_t>(std::forward < array_t&& > (value));
} }
void destroy(value_t t) noexcept void destroy(value_t t) noexcept
......
...@@ -2969,7 +2969,7 @@ scan_number_done: ...@@ -2969,7 +2969,7 @@ scan_number_done:
} }
/// return current string value (implicitly resets the token; useful only once) /// return current string value (implicitly resets the token; useful only once)
std::string move_string() std::string&& move_string()
{ {
return std::move(token_buffer); return std::move(token_buffer);
} }
...@@ -10561,7 +10561,7 @@ class basic_json ...@@ -10561,7 +10561,7 @@ class basic_json
/// constructor for rvalue strings /// constructor for rvalue strings
json_value(string_t&& value) json_value(string_t&& value)
{ {
string = create<string_t>(std::move(value)); string = create<string_t>(std::forward < string_t&& > (value));
} }
/// constructor for objects /// constructor for objects
...@@ -10573,7 +10573,7 @@ class basic_json ...@@ -10573,7 +10573,7 @@ class basic_json
/// constructor for rvalue objects /// constructor for rvalue objects
json_value(object_t&& value) json_value(object_t&& value)
{ {
object = create<object_t>(std::move(value)); object = create<object_t>(std::forward < object_t&& > (value));
} }
/// constructor for arrays /// constructor for arrays
...@@ -10585,7 +10585,7 @@ class basic_json ...@@ -10585,7 +10585,7 @@ class basic_json
/// constructor for rvalue arrays /// constructor for rvalue arrays
json_value(array_t&& value) json_value(array_t&& value)
{ {
array = create<array_t>(std::move(value)); array = create<array_t>(std::forward < array_t&& > (value));
} }
void destroy(value_t t) noexcept void destroy(value_t t) noexcept
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment