diff --git a/src/sfall_arrays.cc b/src/sfall_arrays.cc index 54c07f3..8aec1af 100644 --- a/src/sfall_arrays.cc +++ b/src/sfall_arrays.cc @@ -421,8 +421,10 @@ public: keys.push_back(std::move(keyEl)); // Not very good that we copy string into map key and into keys array - auto keyElForMap = ArrayElement { key, program }; - map.emplace(std::move(keyElForMap), ArrayElement { val, program }); + map.emplace(ArrayElement { key, program }, ArrayElement { val, program }); + } else { + auto newValue = ArrayElement { val, program }; + std::swap(map.at(keyEl), newValue); } } }