From 2d026bf3272f632478c9d0ed9fe3cd6dfe0945a8 Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Fri, 25 Nov 2022 12:24:31 +0100 Subject: [PATCH] Handle coverity defects --- DDDigi/src/DigiContainerCombine.cpp | 28 ++++++++++++++++------------ DDDigi/src/DigiData.cpp | 2 +- DDDigi/src/DigiStoreDump.cpp | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/DDDigi/src/DigiContainerCombine.cpp b/DDDigi/src/DigiContainerCombine.cpp index a68e6f539..700c97c2d 100644 --- a/DDDigi/src/DigiContainerCombine.cpp +++ b/DDDigi/src/DigiContainerCombine.cpp @@ -103,12 +103,14 @@ public: for( std::size_t j=start; j < keys.size(); ++j ) { if ( keys[j].item() == key.item() ) { DetectorHistory* next = std::any_cast<DetectorHistory>(work[j]); - std::string next_name = next->name; - cnt = (combine->m_erase_combined) ? out.merge(std::move(*next)) : out.insert(*next); - combine->info(format, thr, next_name.c_str(), keys[j].mask(), cnt, "histories"); - used_keys_insert(keys[j]); - cnt_hist += cnt; - cnt_conts++; + if ( next ) { + std::string next_name = next->name; + cnt = (combine->m_erase_combined) ? out.merge(std::move(*next)) : out.insert(*next); + combine->info(format, thr, next_name.c_str(), keys[j].mask(), cnt, "histories"); + used_keys_insert(keys[j]); + cnt_hist += cnt; + cnt_conts++; + } } } key.set_mask(combine->m_deposit_mask); @@ -122,12 +124,14 @@ public: for( std::size_t j=start; j < keys.size(); ++j ) { if ( keys[j].item() == key.item() ) { DetectorResponse* next = std::any_cast<DetectorResponse>(work[j]); - std::string next_name = next->name; - cnt = (combine->m_erase_combined) ? out.merge(std::move(*next)) : out.insert(*next); - combine->info(format, thr, next_name.c_str(), keys[j].mask(), cnt, "responses"); - used_keys_insert(keys[j]); - cnt_response += cnt; - cnt_conts++; + if ( next ) { + std::string next_name = next->name; + cnt = (combine->m_erase_combined) ? out.merge(std::move(*next)) : out.insert(*next); + combine->info(format, thr, next_name.c_str(), keys[j].mask(), cnt, "responses"); + used_keys_insert(keys[j]); + cnt_response += cnt; + cnt_conts++; + } } } key.set_mask(combine->m_deposit_mask); diff --git a/DDDigi/src/DigiData.cpp b/DDDigi/src/DigiData.cpp index bbe18cd3e..fc9b20771 100644 --- a/DDDigi/src/DigiData.cpp +++ b/DDDigi/src/DigiData.cpp @@ -450,7 +450,7 @@ void DataSegment::print_keys() const { /// Call on failed any-casts during data requests std::string DataSegment::invalid_cast(Key key, const std::type_info& type) const { - return dd4hep::format(0, "Invalid segment data cast. Key:%-32s %016lX -> %04X %04X %10ld type:%s", + return dd4hep::format(0, "Invalid segment data cast. Key:%-32s %016lX -> %04X %04X %08X type:%s", Key::key_name(key).c_str(), key.value(), key.segment(), key.mask(), key.item(), typeName(type).c_str()); diff --git a/DDDigi/src/DigiStoreDump.cpp b/DDDigi/src/DigiStoreDump.cpp index d3144fae4..37f9e715c 100644 --- a/DDDigi/src/DigiStoreDump.cpp +++ b/DDDigi/src/DigiStoreDump.cpp @@ -167,7 +167,7 @@ DigiStoreDump::dump_history(DigiContext& context, std::vector<std::string> records; str << Key::key_name(container_key) << "[" << seq_no << "]:"; - line = format("+----- %-30s Container: Segment:%04X Mask:%04X Item:%08X Cell:%016X Hist: Hits:%ld Parts:%ld", + line = format("+----- %-30s Container: Segment:%04X Mask:%04X Item:%08X Cell:%016lX Hist: Hits:%ld Parts:%ld", str.str().c_str(), container_key.segment(), container_key.mask(), container_key.item(), cell, history.hits.size(), history.particles.size()); records.emplace_back(line); -- GitLab