From c7487281adf59ca6edc8c6416b0b610684a2c4aa Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 26 Aug 2023 21:28:26 -0500 Subject: [PATCH] Fixing minor data race and memory issues in Placefile Manager --- scwx-qt/source/scwx/qt/manager/placefile_manager.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp b/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp index 96a3ce4a..e125d591 100644 --- a/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp @@ -277,7 +277,7 @@ void PlacefileManager::set_placefile_url(const std::string& name, placefileRecord->name_ = normalizedUrl; placefileRecord->placefile_ = nullptr; p->placefileRecordMap_.erase(it); - p->placefileRecordMap_.emplace(normalizedUrl, placefileRecord); + p->placefileRecordMap_.insert_or_assign(normalizedUrl, placefileRecord); lock.unlock(); @@ -413,7 +413,7 @@ PlacefileManager::GetActivePlacefiles() { if (record->enabled_ && record->placefile_ != nullptr) { - placefiles.emplace_back(record->placefile_); + placefiles.push_back(record->placefile_); } } @@ -695,6 +695,7 @@ void PlacefileManager::Impl::PlacefileRecord::ScheduleRefresh() void PlacefileManager::Impl::PlacefileRecord::CancelRefresh() { + std::unique_lock lock {timerMutex_}; refreshTimer_.cancel(); }