From dd2fc25e4be6a606292699123fc58e2dd01e25c2 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Thu, 17 Sep 2020 20:52:39 -0400 Subject: [PATCH] EventContainers: Fix cppcheck warnings. - Pass class instances by const reference, not by value. - Prefer using an initializer list to assigning members in a ctor body. - Prefer preincrement (or range for) to postincrement for iterators. - Forbid assignment where copy is already forbidden. --- .../IdentifiableValueContainer.h | 3 ++- .../src/IdentifiableContainerBase.cxx | 9 +++++---- Event/EventContainers/test/IDC_Benchmark.cxx | 6 +++--- .../test/IDC_Realistic_Test.cxx | 6 +++--- .../test/IDMT_ContainerTest.cxx | 20 ++++++++----------- .../EventContainers/test/ID_ContainerTest.cxx | 2 +- 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/Event/EventContainers/EventContainers/IdentifiableValueContainer.h b/Event/EventContainers/EventContainers/IdentifiableValueContainer.h index 2b8c1b3f782..8e20549f046 100644 --- a/Event/EventContainers/EventContainers/IdentifiableValueContainer.h +++ b/Event/EventContainers/EventContainers/IdentifiableValueContainer.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef EVENTCONTAINERS_IDENTIFIABLEVALUECONTAINER_H @@ -25,6 +25,7 @@ public: //Prevent accidental copying IdentifiableValueContainer(const IdentifiableValueContainer<T>&) = delete; + IdentifiableValueContainer& operator=(const IdentifiableValueContainer&) = delete; ~IdentifiableValueContainer() { if(m_own) delete m_cache; } diff --git a/Event/EventContainers/src/IdentifiableContainerBase.cxx b/Event/EventContainers/src/IdentifiableContainerBase.cxx index 7ed316fa335..a37c589ca64 100644 --- a/Event/EventContainers/src/IdentifiableContainerBase.cxx +++ b/Event/EventContainers/src/IdentifiableContainerBase.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "EventContainers/IdentifiableContainerBase.h" #include <algorithm> @@ -18,9 +18,10 @@ using namespace EventContainers; m_OnlineMode = true; } - IdentifiableContainerBase::IdentifiableContainerBase(size_t max){ - m_OnlineMode = false; - m_link = std::make_unique<EventContainers::InternalOffline>(max); + IdentifiableContainerBase::IdentifiableContainerBase(size_t max) + : m_OnlineMode (false), + m_link (std::make_unique<EventContainers::InternalOffline>(max)) + { } diff --git a/Event/EventContainers/test/IDC_Benchmark.cxx b/Event/EventContainers/test/IDC_Benchmark.cxx index 85c66d3dc51..e31be9f85f8 100644 --- a/Event/EventContainers/test/IDC_Benchmark.cxx +++ b/Event/EventContainers/test/IDC_Benchmark.cxx @@ -9,7 +9,7 @@ using namespace EventContainers; template<typename T> -void timedelete(std::string name, T* ptr){ +void timedelete(const std::string& name, T* ptr){ auto start1 = std::chrono::steady_clock::now(); delete ptr; auto end1 = std::chrono::steady_clock::now(); @@ -17,7 +17,7 @@ void timedelete(std::string name, T* ptr){ std::cout << name << " delete time " << time.count() << std::endl; } -void timebackwardsfill(std::string name, IdentifiableContainerMT<long unsigned int> *ptr){ +void timebackwardsfill(const std::string& name, IdentifiableContainerMT<long unsigned int> *ptr){ auto start1 = std::chrono::steady_clock::now(); for(size_t i =50000-2;i>=3;i-=3){ ptr->addCollection(new long unsigned int(i) ,i).ignore(); @@ -28,7 +28,7 @@ void timebackwardsfill(std::string name, IdentifiableContainerMT<long unsigned i } -void accessTime(std::string name, IdentifiableContainerMT<long unsigned int>& container){ +void accessTime(const std::string& name, IdentifiableContainerMT<long unsigned int>& container){ auto startwait = std::chrono::steady_clock::now(); container.prepareItr(); diff --git a/Event/EventContainers/test/IDC_Realistic_Test.cxx b/Event/EventContainers/test/IDC_Realistic_Test.cxx index 4d314ac2062..e991dc9ac2d 100644 --- a/Event/EventContainers/test/IDC_Realistic_Test.cxx +++ b/Event/EventContainers/test/IDC_Realistic_Test.cxx @@ -69,9 +69,9 @@ public: MyCollection( ) :m_id(0) { return; } - MyCollection(const MyID& id ) { - m_id=id; - return; + MyCollection(const MyID& id ) + : m_id(id) + { } ~MyCollection() { std::vector<DIGIT*>::const_iterator it = m_vector.begin(); diff --git a/Event/EventContainers/test/IDMT_ContainerTest.cxx b/Event/EventContainers/test/IDMT_ContainerTest.cxx index a9a5fc1ff69..32df3de4345 100644 --- a/Event/EventContainers/test/IDMT_ContainerTest.cxx +++ b/Event/EventContainers/test/IDMT_ContainerTest.cxx @@ -4,6 +4,7 @@ // This is a test cxx file for IdentifiableContainerMT. // +#undef NDEBUG #include "EventContainers/IdentifiableContainerMT.h" #include "EventContainers/SelectAllObject.h" #include "EventContainers/IdentifiableContTemp.h" @@ -53,7 +54,7 @@ namespace IDC_TEST typedef std::vector<DIGIT*>::const_iterator const_iterator; MyCollection( ) :m_id(0) { return; } - MyCollection(const MyID& id ){ m_id=id; return; } + MyCollection(const MyID& id ) : m_id(id) { } ~MyCollection() { std::vector<DIGIT*>::const_iterator it = m_vector.begin(); std::vector<DIGIT*>::const_iterator it_end = m_vector.end(); @@ -344,11 +345,8 @@ int ID_ContainerTest::execute(EventContainers::Mode mode){ } {//Repeat with post incrementor operator SELECTOR select(m_container); - digit_const_iterator it1 = select.begin(); - digit_const_iterator it2 = select.end(); - nd = 0 ; - for(; it1!=it2; it1++){ - const MyDigit* digit = *it1; + nd = 0 ; + for (const MyDigit* digit : select) { volatile float t = digit->val(); t = t + 1.; ++nd; @@ -517,11 +515,8 @@ int ID_ContainerTest::execute(EventContainers::Mode mode){ } SELECTOR select(container2); - digit_const_iterator it1 = select.begin(); - digit_const_iterator it2 = select.end(); - nd = 0 ; - for(; it1!=it2; it1++){ - const MyDigit* digit = *it1; + nd = 0 ; + for (const MyDigit* digit : select) { volatile float t = digit->val(); t = t + 1.; ++nd; @@ -560,7 +555,8 @@ int ID_ContainerTest::execute(EventContainers::Mode mode){ // std::cout << "error:addCollection->" << p->identifyHash() << std::endl; std::vector<IdentifierHash> cacheshouldcontain = { IdentifierHash(0), IdentifierHash(3), IdentifierHash(10) }; std::vector<IdentifierHash> IDCshouldContain = { IdentifierHash(0), IdentifierHash(10) }; - assert(cache->ids().size() == 3); + size_t sz = cache->ids().size(); + assert(sz == 3); if(cache->ids() != cacheshouldcontain){ std::cout << __FILE__ << " cache does not contain correct elements" << std::endl; std::abort(); diff --git a/Event/EventContainers/test/ID_ContainerTest.cxx b/Event/EventContainers/test/ID_ContainerTest.cxx index 86204e92b04..f9452f52eaf 100644 --- a/Event/EventContainers/test/ID_ContainerTest.cxx +++ b/Event/EventContainers/test/ID_ContainerTest.cxx @@ -46,7 +46,7 @@ namespace IDC_TEST typedef std::vector<DIGIT*>::const_iterator const_iterator; MyCollection( ) :m_id(0) { return; } - MyCollection(MyID& id ){ m_id=id; return; } + MyCollection(MyID& id ) : m_id(id) { } ~MyCollection() { std::vector<DIGIT*>::const_iterator it = m_vector.begin(); std::vector<DIGIT*>::const_iterator it_end = m_vector.end(); -- GitLab