From 9e0b874b42875947bf558de8d6dcb0d89e480ba3 Mon Sep 17 00:00:00 2001 From: Vasileios Karakasis <karakasis@cscs.ch> Date: Thu, 27 Oct 2016 14:25:58 +0200 Subject: [PATCH] Addresses PR comments. --- modcc/module.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/modcc/module.cpp b/modcc/module.cpp index 509d7755..3e8fe3d7 100644 --- a/modcc/module.cpp +++ b/modcc/module.cpp @@ -31,21 +31,18 @@ Module::Module(std::string const& fname) buffer_[size] = 0; // append \0 to terminate string } -Module::Module(std::vector<char> const& buffer) -{ +Module::Module(std::vector<char> const& buffer) { buffer_ = buffer; // add \0 to end of buffer if not already present - if(buffer_[buffer_.size()-1] != 0) + if (buffer_[buffer_.size()-1] != 0) buffer_.push_back(0); } -Module::Module(const char* buffer, size_t count) -{ - for (auto i = 0; i < count-1 && *buffer != '\0'; ++buffer) { - buffer_.push_back(*buffer); - } - +Module::Module(const char* buffer, size_t count) { + auto size = std::distance(buffer, std::find(buffer, buffer+count, '\0')); + buffer_.reserve(size+1); + buffer_.insert(buffer_.end(), buffer, buffer+size); buffer_.push_back(0); } -- GitLab