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