New Defects reported by Coverity Scan for digiKam

scan-admin at coverity.com scan-admin at coverity.com
Thu Oct 17 11:11:43 BST 2024


Hi,

Please find the latest report on new defect(s) introduced to digiKam found with Coverity Scan.

16 new defect(s) introduced to digiKam found with Coverity Scan.
10 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 16 of 16 defect(s)


** CID 1633207:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/dbjobs/dbjob.cpp: 291 in Digikam::SearchesJob::runSearches()()


________________________________________________________________________________________________________
*** CID 1633207:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/dbjobs/dbjob.cpp: 291 in Digikam::SearchesJob::runSearches()()
285         m_jobInfo.isDuplicatesJob() ? runFindDuplicates() : runSearches();
286     }
287     
288     void SearchesJob::runSearches()
289     {
290         QList<SearchInfo> infos;
>>>     CID 1633207:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<int>".
291         const auto ids = m_jobInfo.searchIds();
292     
293         for (int id : ids)
294         {
295             infos << CoreDbAccess().db()->getSearchInfo(id);
296         }

** CID 1633206:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/home/gilles/devel/GIT/8.x/core/libs/metadataengine/engine/metaengine_iptc.cpp: 298 in Digikam::MetaEngine::getIptcTagDescription(const char *)()


________________________________________________________________________________________________________
*** CID 1633206:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/home/gilles/devel/GIT/8.x/core/libs/metadataengine/engine/metaengine_iptc.cpp: 298 in Digikam::MetaEngine::getIptcTagDescription(const char *)()
292     {
293         QMutexLocker lock(&s_metaEngineMutex);
294     
295         try
296         {
297             std::string iptckey(iptcTagName);
>>>     CID 1633206:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "iptckey" is passed-by-value as parameter to "Exiv2::IptcKey::IptcKey(std::string)" when it could be moved instead.
298             Exiv2::IptcKey ik(iptckey);
299     
300             return QString::fromLocal8Bit(Exiv2::IptcDataSets::dataSetDesc(ik.tag(), ik.record()));
301         }
302         catch (Exiv2::AnyError& e)
303         {

** CID 1633205:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 782 in Digikam::ItemHistoryGraph::relationCloudParallel() const()


________________________________________________________________________________________________________
*** CID 1633205:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 782 in Digikam::ItemHistoryGraph::relationCloudParallel() const()
776         QList<qlonglong> subjects, objects;
777         ItemHistoryGraphData closure          = ItemHistoryGraphData(d->transitiveClosure());
778         QList<HistoryGraph::VertexPair> edges = closure.edgePairs();
779     
780         for (const HistoryGraph::VertexPair& edge : std::as_const(edges))
781         {
>>>     CID 1633205:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<Digikam::ItemInfo>".
782             const auto infs = closure.properties(edge.first).infos;
783     
784             for (const ItemInfo& source : infs)
785             {
786                 const auto trgs = closure.properties(edge.second).infos;
787     

** CID 1633204:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/home/gilles/devel/GIT/8.x/core/libs/widgets/itemview/dcategorizedview.cpp: 902 in Digikam::DCategorizedView::mouseReleaseEvent(QMouseEvent *)()


________________________________________________________________________________________________________
*** CID 1633204:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/home/gilles/devel/GIT/8.x/core/libs/widgets/itemview/dcategorizedview.cpp: 902 in Digikam::DCategorizedView::mouseReleaseEvent(QMouseEvent *)()
896                         selectionModel()->select(selection, QItemSelectionModel::Deselect);
897                         d->lastCategorySelection.clear();
898                     }
899                     else
900                     {
901                         selectionModel()->select(selection, QItemSelectionModel::SelectCurrent);
>>>     CID 1633204:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "selection" is copied in a call to copy assignment "operator =", when it could be moved instead.
902                         d->lastCategorySelection = selection;
903                     }
904     
905                     break;
906                 }
907             }

** CID 1633203:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 762 in Digikam::ItemHistoryGraph::relationCloud() const()


________________________________________________________________________________________________________
*** CID 1633203:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 762 in Digikam::ItemHistoryGraph::relationCloud() const()
756         for (const HistoryGraph::VertexPair& edge : std::as_const(edges))
757         {
758             const auto srcs = closure.properties(edge.first).infos;
759     
760             for (const ItemInfo& source : srcs)
761             {
>>>     CID 1633203:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<Digikam::ItemInfo>".
762                 const auto trgs = closure.properties(edge.second).infos;
763     
764                 for (const ItemInfo& target : trgs)
765                 {
766                     pairs << QPair<qlonglong, qlonglong>(source.id(), target.id());
767                 }

** CID 1633202:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 786 in Digikam::ItemHistoryGraph::relationCloudParallel() const()


________________________________________________________________________________________________________
*** CID 1633202:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 786 in Digikam::ItemHistoryGraph::relationCloudParallel() const()
780         for (const HistoryGraph::VertexPair& edge : std::as_const(edges))
781         {
782             const auto infs = closure.properties(edge.first).infos;
783     
784             for (const ItemInfo& source : infs)
785             {
>>>     CID 1633202:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<Digikam::ItemInfo>".
786                 const auto trgs = closure.properties(edge.second).infos;
787     
788                 for (const ItemInfo& target : trgs)
789                 {
790                     subjects << source.id();
791                     objects  << target.id();

** CID 1633201:  Uninitialized members  (UNINIT_CTOR)
/home/gilles/devel/GIT/8.x/core/libs/facesengine/facedb/facedbaccess.cpp: 114 in Digikam::FaceDbAccess::FaceDbAccess()()


________________________________________________________________________________________________________
*** CID 1633201:  Uninitialized members  (UNINIT_CTOR)
/home/gilles/devel/GIT/8.x/core/libs/facesengine/facedb/facedbaccess.cpp: 114 in Digikam::FaceDbAccess::FaceDbAccess()()
108             // avoid endless loops
109     
110             d->initializing = true;
111             d->backend->open(d->parameters);
112             d->initializing = false;
113         }
>>>     CID 1633201:  Uninitialized members  (UNINIT_CTOR)
>>>     Non-static class member "recognizeModel" is not initialized in this constructor nor in any functions that it calls.
114     }
115     
116     FaceDbAccess::~FaceDbAccess()
117     {
118         d->lock.lockCount--;
119         d->lock.mutex.unlock();

** CID 1633200:  Uninitialized members  (UNINIT_CTOR)
/home/gilles/devel/GIT/8.x/core/libs/facesengine/facedb/facedbaccess.cpp: 129 in Digikam::FaceDbAccess::FaceDbAccess(bool)()


________________________________________________________________________________________________________
*** CID 1633200:  Uninitialized members  (UNINIT_CTOR)
/home/gilles/devel/GIT/8.x/core/libs/facesengine/facedb/facedbaccess.cpp: 129 in Digikam::FaceDbAccess::FaceDbAccess(bool)()
123     {
124         // private constructor, when mutex is locked and
125         // backend should not be checked
126     
127         d->lock.mutex.lock();
128         d->lock.lockCount++;
>>>     CID 1633200:  Uninitialized members  (UNINIT_CTOR)
>>>     Non-static class member "recognizeModel" is not initialized in this constructor nor in any functions that it calls.
129     }
130     
131     FaceDb* FaceDbAccess::db() const
132     {
133         return d->db;
134     }

** CID 1633199:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/item/scanner/itemscanner_history.cpp: 207 in Digikam::ItemScanner::resolvedImageHistory(const Digikam::DImageHistory &, bool)()


________________________________________________________________________________________________________
*** CID 1633199:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/item/scanner/itemscanner_history.cpp: 207 in Digikam::ItemScanner::resolvedImageHistory(const Digikam::DImageHistory &, bool)()
201         }
202     }
203     
204     DImageHistory ItemScanner::resolvedImageHistory(const DImageHistory& history, bool mustBeAvailable)
205     {
206         DImageHistory h;
>>>     CID 1633199:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<Digikam::DImageHistory::Entry>".
207         const auto entries = history.entries();
208     
209         for (const DImageHistory::Entry& e : entries)
210         {
211             // Copy entry, without referredImages
212     

** CID 1633198:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 758 in Digikam::ItemHistoryGraph::relationCloud() const()


________________________________________________________________________________________________________
*** CID 1633198:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 758 in Digikam::ItemHistoryGraph::relationCloud() const()
752         QList<QPair<qlonglong, qlonglong> > pairs;
753         ItemHistoryGraphData closure          = ItemHistoryGraphData(d->transitiveClosure());
754         QList<HistoryGraph::VertexPair> edges = closure.edgePairs();
755     
756         for (const HistoryGraph::VertexPair& edge : std::as_const(edges))
757         {
>>>     CID 1633198:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<Digikam::ItemInfo>".
758             const auto srcs = closure.properties(edge.first).infos;
759     
760             for (const ItemInfo& source : srcs)
761             {
762                 const auto trgs = closure.properties(edge.second).infos;
763     

** CID 1633197:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/home/gilles/devel/GIT/8.x/core/libs/metadataengine/engine/metaengine_iptc.cpp: 275 in Digikam::MetaEngine::getIptcTagTitle(const char *)()


________________________________________________________________________________________________________
*** CID 1633197:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/home/gilles/devel/GIT/8.x/core/libs/metadataengine/engine/metaengine_iptc.cpp: 275 in Digikam::MetaEngine::getIptcTagTitle(const char *)()
269     {
270         QMutexLocker lock(&s_metaEngineMutex);
271     
272         try
273         {
274             std::string iptckey(iptcTagName);
>>>     CID 1633197:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>>     "iptckey" is passed-by-value as parameter to "Exiv2::IptcKey::IptcKey(std::string)" when it could be moved instead.
275             Exiv2::IptcKey ik(iptckey);
276     
277             return QString::fromLocal8Bit(Exiv2::IptcDataSets::dataSetTitle(ik.tag(), ik.record()));
278         }
279         catch (Exiv2::AnyError& e)
280         {

** CID 1633196:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/dplugins/generic/tools/mjpegstream/mjpegservermngr.cpp: 281 in DigikamGenericMjpegStreamPlugin::MjpegServerMngr::save()()


________________________________________________________________________________________________________
*** CID 1633196:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/dplugins/generic/tools/mjpegstream/mjpegservermngr.cpp: 281 in DigikamGenericMjpegStreamPlugin::MjpegServerMngr::save()()
275             QDomElement elm = doc.createElement(QLatin1String("album"));
276             elm.setAttribute(QLatin1String("title"), it.key());
277     
278             // ----------------------
279     
280             QDomElement data;
>>>     CID 1633196:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<QUrl>".
281             const auto urls = it.value();
282     
283             for (const QUrl& url : urls)
284             {
285                 data = doc.createElement(QLatin1String("path"));
286                 data.setAttribute(QLatin1String("value"), url.toLocalFile());

** CID 1633195:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 599 in Digikam::ItemHistoryGraphData::addHistory(const Digikam::DImageHistory &, long long)()


________________________________________________________________________________________________________
*** CID 1633195:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 599 in Digikam::ItemHistoryGraphData::addHistory(const Digikam::DImageHistory &, long long)()
593         {
594             return;
595         }
596     
597         HistoryGraph::Vertex  last;
598         HistoryEdgeProperties edgeProps;
>>>     CID 1633195:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<Digikam::DImageHistory::Entry>".
599         const auto entries = history.entries();
600     
601         for (const DImageHistory::Entry& entry : entries)
602         {
603             if (!last.isNull())
604             {

** CID 1633194:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/dplugins/generic/tools/mediaserver/server/dmediaservermngr.cpp: 253 in DigikamGenericMediaServerPlugin::DMediaServerMngr::save()()


________________________________________________________________________________________________________
*** CID 1633194:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/dplugins/generic/tools/mediaserver/server/dmediaservermngr.cpp: 253 in DigikamGenericMediaServerPlugin::DMediaServerMngr::save()()
247             QDomElement elm = doc.createElement(QLatin1String("album"));
248             elm.setAttribute(QLatin1String("title"), it.key());
249     
250             // ----------------------
251     
252             QDomElement data;
>>>     CID 1633194:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<QUrl>".
253             const auto urls = it.value();
254     
255             for (const QUrl& url : urls)
256             {
257                 data = doc.createElement(QLatin1String("path"));
258                 data.setAttribute(QLatin1String("value"), url.toLocalFile());

** CID 1633193:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/dnnmodelmanager/dnnmodelmanager.cpp: 88 in Digikam::DNNModelManager::getDownloadInformation(Digikam::_DNNModelUsage)()


________________________________________________________________________________________________________
*** CID 1633193:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/dnnmodelmanager/dnnmodelmanager.cpp: 88 in Digikam::DNNModelManager::getDownloadInformation(Digikam::_DNNModelUsage)()
82     const QList<DownloadInfo>& DNNModelManager::getDownloadInformation(DNNModelUsage usage)
83     {
84         d->downloadInfo.clear();
85     
86         const auto keys = d->modelMap.keys();
87     
>>>     CID 1633193:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QString".
88         for (auto model : keys)
89         {
90             if (d->modelMap[model]->info.usage.contains(usage))
91             {
92                 d->downloadInfo << d->modelMap[model]->getDownloadInformation();
93             }

** CID 1633192:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 811 in Digikam::ItemHistoryGraph::allImageIds() const()


________________________________________________________________________________________________________
*** CID 1633192:  Performance inefficiencies  (AUTO_CAUSES_COPY)
/home/gilles/devel/GIT/8.x/core/libs/database/history/itemhistorygraph.cpp: 811 in Digikam::ItemHistoryGraph::allImageIds() const()
805     {
806         QList<qlonglong> ids;
807         const auto verts = d->vertices();
808     
809         for (const HistoryGraph::Vertex& v : verts)
810         {
>>>     CID 1633192:  Performance inefficiencies  (AUTO_CAUSES_COPY)
>>>     Using the "auto" keyword without an "&" causes the copy of an object of type "QList<Digikam::ItemInfo>".
811             const auto infs = d->properties(v).infos;
812     
813             for (const ItemInfo& info : infs)
814             {
815                 ids << info.id();
816             }


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=u001.AxU2LYlgjL6eX23u9ErQy-2BKADyCpvUKOL6EWmZljiu4yJUfIaFVfulX1EnArvLvmGJ18AyhOhOJnWywYkUuR-2BHL458rbL5b5DiAzhSjilZ8-3DosSb_wUwU8mg96yc-2FA1IAMQ6mJ-2FFdQ9EM-2BFY-2BXFbSpXNYnfzJTnm8ZKkL2PrSinQ0s7hzwCYC7PSeBEV2zOMLpS-2FVdVmS0nE-2FLl1QdxN2B5pIAxBnQDCLD2LwzVLPtj7WPqsuxwrS8oQOBLy6x68-2FyVOACBYQLmB-2FPruC2Rzt96hu6nL99cW-2BQSgz6Jd4l4a9Bv2N0E3KWCEUM1xYRLRXOtx-2F9g-3D-3D



More information about the Digikam-devel mailing list