aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/StatusParagraph.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-06-17 02:39:14 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-06-20 09:36:21 -0700
commit8741214bf69d1209a1e6d405ed8561d27f04436a (patch)
tree85325eb4b2d2c1c15eb8bd58426dac5462242d4e /toolsrc/src/StatusParagraph.cpp
parent8c4d55b8f304c74aeb95878cfe354830ff4abc88 (diff)
downloadvcpkg-8741214bf69d1209a1e6d405ed8561d27f04436a.tar.gz
vcpkg-8741214bf69d1209a1e6d405ed8561d27f04436a.zip
[vcpkg] Use unique_ptr<> for paragraphs. Post-parser phase rework.
Diffstat (limited to 'toolsrc/src/StatusParagraph.cpp')
-rw-r--r--toolsrc/src/StatusParagraph.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/toolsrc/src/StatusParagraph.cpp b/toolsrc/src/StatusParagraph.cpp
index b9ceed278..5b5c3978f 100644
--- a/toolsrc/src/StatusParagraph.cpp
+++ b/toolsrc/src/StatusParagraph.cpp
@@ -1,9 +1,8 @@
#include "pch.h"
#include "StatusParagraph.h"
-#include "vcpkglib_helpers.h"
-using namespace vcpkg::details;
+using namespace vcpkg::Parse;
namespace vcpkg
{
@@ -24,9 +23,14 @@ namespace vcpkg
.push_back('\n');
}
- StatusParagraph::StatusParagraph(const std::unordered_map<std::string, std::string>& fields) : package(fields)
+ StatusParagraph::StatusParagraph(std::unordered_map<std::string, std::string>&& fields)
{
- std::string status_field = required_field(fields, BinaryParagraphRequiredField::STATUS);
+ auto status_it = fields.find(BinaryParagraphRequiredField::STATUS);
+ Checks::check_exit(VCPKG_LINE_INFO, status_it != fields.end(), "Expected 'Status' field in status paragraph");
+ std::string status_field = std::move(status_it->second);
+ fields.erase(status_it);
+
+ this->package = BinaryParagraph(std::move(fields));
auto b = status_field.begin();
auto mark = b;