From 4eb8e523605753ac32053d65dc21e982939c3589 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 16 Jul 2024 11:58:39 +0200 Subject: [PATCH] client bug fix: m3 multi module bad channel file throws bad allocation when modules skipped, needed to add vectors in 2d vector of bad channel list (#919) --- slsDetectorSoftware/src/DetectorImpl.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/slsDetectorSoftware/src/DetectorImpl.cpp b/slsDetectorSoftware/src/DetectorImpl.cpp index c40c163fc..b334c3cfb 100644 --- a/slsDetectorSoftware/src/DetectorImpl.cpp +++ b/slsDetectorSoftware/src/DetectorImpl.cpp @@ -1977,7 +1977,7 @@ void DetectorImpl::setBadChannels(const std::vector list, Positions pos) { // update to multi values if multi modules if (isAllPositions(pos)) { - std::vector> badchannels; + std::vector> badchannels(modules.size()); int nchan = modules[0]->getNumberOfChannels().x; if (shm()->detType == MYTHEN3) { // assuming single counter @@ -1996,16 +1996,9 @@ void DetectorImpl::setBadChannels(const std::vector list, Positions pos) { std::to_string(badchannel) + " out of bounds."); } - if (badchannels.size() != imod + 1) { - badchannels.push_back(std::vector{}); - } badchannels[imod].push_back(ch); } for (size_t imod = 0; imod != modules.size(); ++imod) { - // add empty vector if no bad channels in this module - if (badchannels.size() != imod + 1) { - badchannels.push_back(std::vector{}); - } Parallel(&Module::setBadChannels, {static_cast(imod)}, badchannels[imod]); }