From 8741214bf69d1209a1e6d405ed8561d27f04436a Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sat, 17 Jun 2017 02:39:14 -0700 Subject: [vcpkg] Use unique_ptr<> for paragraphs. Post-parser phase rework. --- toolsrc/src/StatusParagraph.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'toolsrc/src/StatusParagraph.cpp') 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& fields) : package(fields) + StatusParagraph::StatusParagraph(std::unordered_map&& 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; -- cgit v1.2.3