From 5ffee75cada14b4992ce6e7020abc03d13385be4 Mon Sep 17 00:00:00 2001 From: Hisaya Kurashige <isaya@cern.ch> Date: Fri, 30 Jan 2015 00:35:28 +0100 Subject: [PATCH] Fix Coverity defects (MuonTGC_Cabling-00-02-11) * Tagged as MuonTGC_Cabling-00-02-11 * Fixed Coverity defects : 11465 11466 11522 11523 2015-01-22 Hisaya Kurashige <Hisaya.Kurashige@cern.ch> * Tagged as MuonTGC_Cabling-00-02-10 * fixing memory leak (see ATR-9839) 2015-01-18 Jochen Meyer * Tagged as MuonTGC_Cabling-00-02-09 * addressing coverity defects 11257-60 * Tagged as MuonTGC_Cabling-00-02-08 * fixing coverity defect 11920 --- .../MuonTGC_Cabling/TGCCableSSWToROD.h | 4 +- .../MuonTGC_Cabling/TGCCabling.h | 9 ++++- .../MuonTGC_Cabling/TGCDatabaseASDToPP.h | 3 ++ .../MuonTGC_Cabling/TGCDatabaseInPP.h | 3 ++ .../MuonTGC_Cabling/TGCDatabasePPToSL.h | 3 ++ .../MuonTGC_Cabling/TGCDatabaseSLBToROD.h | 3 ++ .../src/MuonTGC_CablingSvc.cxx | 5 ++- .../MuonTGC_Cabling/src/TGCCableSSWToROD.cxx | 22 +++++++++++ .../MuonTGC_Cabling/src/TGCCabling.cxx | 37 +++++++++++++++++++ 9 files changed, 85 insertions(+), 4 deletions(-) diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h index 63bf4729653..51c96bbed44 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h @@ -19,13 +19,15 @@ class TGCCableSSWToROD : public TGCCable public: // Constructor & Destructor TGCCableSSWToROD(std::string filename); + TGCCableSSWToROD (const TGCCableSSWToROD&); + TGCCableSSWToROD& operator=(const TGCCableSSWToROD&); virtual ~TGCCableSSWToROD(void); virtual TGCModuleMap* getModule(const TGCModuleId* moduleId) const; private: - TGCCableSSWToROD(void) {} + TGCCableSSWToROD(void); virtual TGCModuleMap* getModuleIn(const TGCModuleId* rod) const; virtual TGCModuleMap* getModuleOut(const TGCModuleId* ssw) const; TGCDatabase* database; diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h index f3811d67f5d..80136eaceeb 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h @@ -33,7 +33,13 @@ class TGCModuleSLB; class TGCCabling : public TGCCablingBase { -public: + private: //hide default constructor, copy constructor and assignment + TGCCabling (void); + TGCCabling (const TGCCabling&); + TGCCabling& operator= (const TGCCabling&); + + + public: // Constructor & Destructor TGCCabling(std::string filenameASDToPP, std::string filenameInPP, @@ -179,7 +185,6 @@ private: TGCCableHPBToSL* cableHPBToSL; TGCCableSLBToSSW* cableSLBToSSW; TGCCableSSWToROD* cableSSWToROD; - TGCCabling(void) {} mutable std::map<int, TGCModuleId*> m_slbModuleIdMap; int getIndexFromReadoutWithoutChannel(const TGCIdBase::SideType side, diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h index 45d4eb2e41f..3825703c809 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h @@ -100,6 +100,9 @@ private: /** This bool variable is used to know the database is common or sector specific */ bool m_isCommon; + + /** hidden assignment operator */ + TGCDatabaseASDToPP & operator=(const TGCDatabaseASDToPP &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h index b6cf30ef8c3..8cfedb918a2 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h @@ -67,6 +67,9 @@ private: int NIndexDBIn; int maxIndexIn[NIndexIn]; int minIndexIn[NIndexIn]; + + /** hidden assignment operator */ + TGCDatabaseInPP & operator=(const TGCDatabaseInPP &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h index 358ff48d9fd..0f99a6d965b 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h @@ -27,6 +27,9 @@ public: private: virtual void readDB(void); TGCDatabasePPToSL(void) {} + + /** hidden assignment operator */ + TGCDatabasePPToSL & operator=(const TGCDatabasePPToSL &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h index f20d4d060a0..473507a5e5d 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h @@ -28,6 +28,9 @@ public: private: virtual void readDB(void); TGCDatabaseSLBToROD(void) {} + + /** hidden assignment operator */ + TGCDatabaseSLBToROD & operator=(const TGCDatabaseSLBToROD &right); }; } // end of namespace diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx index 96f6622204d..de51b3bfc6d 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx @@ -859,7 +859,10 @@ bool MuonTGC_CablingSvc::getOfflineIDfromOnlineID(Identifier & offlineId, case 21: // T11S channel -= OffsetForT11S; - if(channel<=0) return false; + if(channel<=0) { + delete asdin; + return false; + } break; default: break; diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx index bf2c2e5db7c..572f0a2c6f9 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx @@ -17,6 +17,28 @@ TGCCableSSWToROD::TGCCableSSWToROD(std::string filename) { database = new TGCDatabaseSLBToROD(filename,"SSW ALL"); } + +TGCCableSSWToROD::TGCCableSSWToROD (void) + : TGCCable(TGCCable::SSWToROD), + database(0) +{ +} + +TGCCableSSWToROD::TGCCableSSWToROD (const TGCCableSSWToROD& right) + : TGCCable(TGCCable::SSWToROD), + database(0) +{ + database = new TGCDatabaseSLBToROD(*dynamic_cast<TGCDatabaseSLBToROD*>(right.database)); +} + +TGCCableSSWToROD& TGCCableSSWToROD::operator=(const TGCCableSSWToROD& right) +{ + if (this != &right) { + delete database; + database = new TGCDatabaseSLBToROD(*dynamic_cast<TGCDatabaseSLBToROD*>(right.database)); + } + return *this; +} TGCCableSSWToROD::~TGCCableSSWToROD(void) { diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx index d696b04fdb0..f665b2dc953 100644 --- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx +++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx @@ -25,6 +25,43 @@ namespace MuonTGC_Cabling { // Constructor & Destructor +TGCCabling::TGCCabling (void) + : TGCCablingBase(), + cableInASD(0), + cableASDToPP(0), + cableInPP(0), + cablePPToSLB(0), + cableInSLB(0), + cableSLBToHPB(0), + cableHPBToSL(0), + cableSLBToSSW(0), + cableSSWToROD(0) +{ + // do nothing +} + +TGCCabling::TGCCabling (const TGCCabling&) + : TGCCablingBase(), + cableInASD(0), + cableASDToPP(0), + cableInPP(0), + cablePPToSLB(0), + cableInSLB(0), + cableSLBToHPB(0), + cableHPBToSL(0), + cableSLBToSSW(0), + cableSSWToROD(0) +{ + // do nothing +} + +TGCCabling& TGCCabling::operator= (const TGCCabling&) +{ + // do nothing + return *this; +} + + TGCCabling::TGCCabling(std::string filenameASDToPP, std::string filenameInPP, std::string filenamePPToSL, -- GitLab