From 419db6c82fff996f368cb6e87472b3a5da0d4f89 Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 29 Dec 2014 18:52:42 +0100 Subject: Tools/Patcher: Optimized loading binary file by patcher --- src/tools/connection_patcher/Patcher.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/tools/connection_patcher/Patcher.cpp b/src/tools/connection_patcher/Patcher.cpp index 92d9dacedf3..e64da12b4aa 100644 --- a/src/tools/connection_patcher/Patcher.cpp +++ b/src/tools/connection_patcher/Patcher.cpp @@ -35,9 +35,15 @@ namespace if (!ifs) throw std::runtime_error("could not open " + path.string()); + std::vector binary; ifs >> std::noskipws; + ifs.seekg(0, std::ios_base::end); + binary.reserve(ifs.tellg()); + ifs.seekg(0, std::ios_base::beg); - return {std::istream_iterator(ifs), std::istream_iterator()}; + std::copy(std::istream_iterator(ifs), std::istream_iterator(), std::back_inserter(binary)); + + return binary; } void write_file(boost::filesystem::path const& path, std::vector const& data) @@ -51,7 +57,7 @@ namespace std::copy(data.begin(), data.end(), std::ostream_iterator(ofs)); } - std::set SearchOffset (std::vector const& binary, std::vector const& pattern) + std::set SearchOffset(std::vector const& binary, std::vector const& pattern) { std::set offsets; for (size_t i = 0; (i + pattern.size()) < binary.size(); i++) -- cgit v1.2.3