From 6899b6043e29972b347f68d02fe3bfc93780c9bd Mon Sep 17 00:00:00 2001
From: Steven Hahn <hahnse@ornl.gov>
Date: Mon, 1 May 2017 15:12:11 -0400
Subject: [PATCH] Avoid extra search inside map.

---
 Framework/API/src/MatrixWorkspace.cpp | 6 +-----
 Framework/Kernel/src/Matrix.cpp       | 3 ++-
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/Framework/API/src/MatrixWorkspace.cpp b/Framework/API/src/MatrixWorkspace.cpp
index d8b2fdd90a3..e4293eaf3d1 100644
--- a/Framework/API/src/MatrixWorkspace.cpp
+++ b/Framework/API/src/MatrixWorkspace.cpp
@@ -1027,11 +1027,7 @@ void MatrixWorkspace::flagMasked(const size_t &index, const size_t &binIndex,
     // First get a reference to the list for this spectrum (or create a new
     // list)
     MaskList &binList = m_masks[index];
-    auto it = binList.find(binIndex);
-    if (it != binList.end()) {
-      binList.erase(it);
-    }
-    binList.emplace(binIndex, weight);
+    binList[binIndex] = weight;
   }
 }
 
diff --git a/Framework/Kernel/src/Matrix.cpp b/Framework/Kernel/src/Matrix.cpp
index 4c00c81362e..5ea8fddd9c0 100644
--- a/Framework/Kernel/src/Matrix.cpp
+++ b/Framework/Kernel/src/Matrix.cpp
@@ -387,7 +387,8 @@ std::vector<T> Matrix<T>::operator*(const std::vector<T> &Vec) const
 template <typename T>
 void Matrix<T>::multiplyPoint(const std::vector<T> &in,
                               std::vector<T> &out) const {
-  out.assign(nx, static_cast<T>(0.0));
+  out.resize(nx);
+  std::fill(std::begin(out), std::end(out), static_cast<T>(0.0));
   if (ny > in.size())
     throw Kernel::Exception::MisMatch<size_t>(ny, in.size(),
                                               "Matrix::multiplyPoint(in,out)");
-- 
GitLab