New Defects reported by Coverity Scan for digiKam

scan-admin at coverity.com scan-admin at coverity.com
Sun Aug 22 13:30:25 BST 2021


Hi,

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

21 new defect(s) introduced to digiKam found with Coverity Scan.


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


** CID 1490670:  Null pointer dereferences  (FORWARD_NULL)


________________________________________________________________________________________________________
*** CID 1490670:  Null pointer dereferences  (FORWARD_NULL)
/mnt/devel/GIT/7.x/core/utilities/geolocation/mapsearches/gpsmarkertiler.cpp: 991 in Digikam::GPSMarkerTiler::removeMarkerFromTileAndChildren(long long, const Digikam::TileIndex &)()
985                 {
986                     break;
987                 }
988     
989                 // this tile can be deleted
990     
>>>     CID 1490670:  Null pointer dereferences  (FORWARD_NULL)
>>>     Passing null pointer "currentParentTile" to "deleteChild", which dereferences it.
991                 currentParentTile->deleteChild(currentTile);
992                 break;
993             }
994     
995             currentParentTile = currentTile;
996             currentTile       = static_cast<MyTile*>(currentParentTile->getChild(markerTileIndex.at(level)));

** CID 1490669:  Null pointer dereferences  (FORWARD_NULL)


________________________________________________________________________________________________________
*** CID 1490669:  Null pointer dereferences  (FORWARD_NULL)
/mnt/devel/GIT/7.x/core/libs/widgets/metadata/exiv2/metadatawidget.cpp: 362 in Digikam::MetadataWidget::metadataToText() const()
356     
357                 int j                  = 0;
358                 QTreeWidgetItem* item2 = nullptr;
359     
360                 do
361                 {
>>>     CID 1490669:  Null pointer dereferences  (FORWARD_NULL)
>>>     Passing null pointer "dynamic_cast <QTreeWidgetItem *>(lvItem)" to "child", which dereferences it.
362                     item2 = dynamic_cast<QTreeWidgetItem*>(lvItem)->child(j);
363     
364                     if (item2)
365                     {
366                         MetadataListViewItem* const lvItem2 = dynamic_cast<MetadataListViewItem*>(item2);
367     

** CID 1490668:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/setup/downloader/filesdownloader.h: 41 in ()


________________________________________________________________________________________________________
*** CID 1490668:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/setup/downloader/filesdownloader.h: 41 in ()
35     
36     namespace Digikam
37     {
38     
39     // ----------------------------------------------------------------------------
40     
>>>     CID 1490668:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "Digikam::DownloadInfo" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
41     class DIGIKAM_EXPORT DownloadInfo
42     {
43     public:
44     
45         DownloadInfo();
46         DownloadInfo(const QString& _path,

** CID 1490667:  Memory - corruptions  (BAD_ALLOC_ARITHMETIC)
/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h: 133 in Eigen::internal::parallelize_gemm<(bool)1, Eigen::internal::gemm_functor<double, long, Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<double, (int)-1, (int)-1, (int)0, (int)-1, (int)-1>, (int)0, Eigen::Stride<(int)0, (int)0>>, (int)-1, (int)-1, (bool)0>, (int)-1, (int)-1, (bool)0>, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<double, (int)-1, (int)-1, (int)0, (int)-1, (int)-1>, (int)0, Eigen::Stride<(int)0, (int)0>>, (int)-1, (int)-1, (bool)0>, (int)-1, (int)-1, (bool)0>, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<double, (int)-1, (int)-1, (int)0, (int)-1, (int)-1>, (int)0, Eigen::Stride<(int)0, (int)0>>, (int)-1, (int)-1, (bool)0>, (int)-1, (int)-1, (bool)0>, Eigen::internal::gemm_blocking_space<(int)0, double, double, (int)-1, (int)-1, (int)-1, (int)1, (bool)0>>, long>(const T2 &, T3, T3, T3, bool)()


________________________________________________________________________________________________________
*** CID 1490667:  Memory - corruptions  (BAD_ALLOC_ARITHMETIC)
/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h: 133 in Eigen::internal::parallelize_gemm<(bool)1, Eigen::internal::gemm_functor<double, long, Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<double, (int)-1, (int)-1, (int)0, (int)-1, (int)-1>, (int)0, Eigen::Stride<(int)0, (int)0>>, (int)-1, (int)-1, (bool)0>, (int)-1, (int)-1, (bool)0>, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<double, (int)-1, (int)-1, (int)0, (int)-1, (int)-1>, (int)0, Eigen::Stride<(int)0, (int)0>>, (int)-1, (int)-1, (bool)0>, (int)-1, (int)-1, (bool)0>, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<double, (int)-1, (int)-1, (int)0, (int)-1, (int)-1>, (int)0, Eigen::Stride<(int)0, (int)0>>, (int)-1, (int)-1, (bool)0>, (int)-1, (int)-1, (bool)0>, Eigen::internal::gemm_blocking_space<(int)0, double, double, (int)-1, (int)-1, (int)-1, (int)1, (bool)0>>, long>(const T2 &, T3, T3, T3, bool)()
127       Eigen::initParallel();
128       func.initParallelSession(threads);
129     
130       if(transpose)
131         std::swap(rows,cols);
132     
>>>     CID 1490667:  Memory - corruptions  (BAD_ALLOC_ARITHMETIC)
>>>     Adding an offset to the result of a call to "__builtin_alloca" might indicate an under-allocation.
133       ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0);
134     
135       #pragma omp parallel num_threads(threads)
136       {
137         Index i = omp_get_thread_num();
138         // Note that the actual number of threads might be lower than the number of request ones.

** CID 1490666:    (CHECKED_RETURN)


________________________________________________________________________________________________________
*** CID 1490666:    (CHECKED_RETURN)
/mnt/devel/GIT/7.x/core/dplugins/generic/tools/mjpegstream/mjpegserver_p.cpp: 288 in DigikamGenericMjpegStreamPlugin::MjpegServer::Private::clientWriteMultithreaded(int, const QByteArray &)()
282     
283         writeInSocket(client, head.toLatin1());
284     
285         // Write image data
286     
287         writeInSocket(client, data);
>>>     CID 1490666:    (CHECKED_RETURN)
>>>     Calling "this->writeInSocket(client, QByteArray("\r\n\r\n", -1))" without checking return value. It wraps a library function that may fail and return an error code.
288         writeInSocket(client, QByteArray("\r\n\r\n"));
289     }
290     
/mnt/devel/GIT/7.x/core/dplugins/generic/tools/mjpegstream/mjpegserver_p.cpp: 283 in DigikamGenericMjpegStreamPlugin::MjpegServer::Private::clientWriteMultithreaded(int, const QByteArray &)()
277                                   "Content-length: "));
278         head.append(QString::number(data.size()));
279         head.append(QLatin1String("\r\n\r\n"));
280     
281         // Write header
282     
>>>     CID 1490666:    (CHECKED_RETURN)
>>>     Calling "this->writeInSocket(client, QByteArray(head.toLatin1()))" without checking return value. It wraps a library function that may fail and return an error code.
283         writeInSocket(client, head.toLatin1());
284     
285         // Write image data
286     
287         writeInSocket(client, data);
288         writeInSocket(client, QByteArray("\r\n\r\n"));
289     }
290     
/mnt/devel/GIT/7.x/core/dplugins/generic/tools/mjpegstream/mjpegserver_p.cpp: 287 in DigikamGenericMjpegStreamPlugin::MjpegServer::Private::clientWriteMultithreaded(int, const QByteArray &)()
281         // Write header
282     
283         writeInSocket(client, head.toLatin1());
284     
285         // Write image data
286     
>>>     CID 1490666:    (CHECKED_RETURN)
>>>     Calling "this->writeInSocket(client, data)" without checking return value. It wraps a library function that may fail and return an error code.
287         writeInSocket(client, data);
288         writeInSocket(client, QByteArray("\r\n\r\n"));
289     }
290     

** CID 1490665:    (BAD_ALLOC_ARITHMETIC)
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h: 95 in Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>::run(long, long, long, const double *, long, const double *, long, double *, long, long, double, Eigen::internal::level3_blocking<double, double> &, Eigen::internal::GemmParallelInfo<long> *)()
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h: 165 in Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>::run(long, long, long, const double *, long, const double *, long, double *, long, long, double, Eigen::internal::level3_blocking<double, double> &, Eigen::internal::GemmParallelInfo<long> *)()
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h: 164 in Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>::run(long, long, long, const double *, long, const double *, long, double *, long, long, double, Eigen::internal::level3_blocking<double, double> &, Eigen::internal::GemmParallelInfo<long> *)()


________________________________________________________________________________________________________
*** CID 1490665:    (BAD_ALLOC_ARITHMETIC)
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h: 95 in Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>::run(long, long, long, const double *, long, const double *, long, double *, long, long, double, Eigen::internal::level3_blocking<double, double> &, Eigen::internal::GemmParallelInfo<long> *)()
89         int threads = omp_get_num_threads();
90     
91         LhsScalar* blockA = blocking.blockA();
92         eigen_internal_assert(blockA!=0);
93     
94         std::size_t sizeB = kc*nc;
>>>     CID 1490665:    (BAD_ALLOC_ARITHMETIC)
>>>     Adding an offset to the result of a call to "__builtin_alloca" might indicate an under-allocation.
95         ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, 0);
96     
97         // For each horizontal panel of the rhs, and corresponding vertical panel of the lhs...
98         for(Index k=0; k<depth; k+=kc)
99         {
100           const Index actual_kc = (std::min)(k+kc,depth)-k; // => rows of B', and cols of the A'
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h: 165 in Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>::run(long, long, long, const double *, long, const double *, long, double *, long, long, double, Eigen::internal::level3_blocking<double, double> &, Eigen::internal::GemmParallelInfo<long> *)()
159     
160         // this is the sequential version!
161         std::size_t sizeA = kc*mc;
162         std::size_t sizeB = kc*nc;
163     
164         ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, blocking.blockA());
>>>     CID 1490665:    (BAD_ALLOC_ARITHMETIC)
>>>     Adding an offset to the result of a call to "__builtin_alloca" might indicate an under-allocation.
165         ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, blocking.blockB());
166     
167         const bool pack_rhs_once = mc!=rows && kc==depth && nc==cols;
168     
169         // For each horizontal panel of the rhs, and corresponding panel of the lhs...
170         for(Index i2=0; i2<rows; i2+=mc)
/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h: 164 in Eigen::internal::general_matrix_matrix_product<long, double, (int)0, (bool)0, double, (int)0, (bool)0, (int)0, (int)1>::run(long, long, long, const double *, long, const double *, long, double *, long, long, double, Eigen::internal::level3_blocking<double, double> &, Eigen::internal::GemmParallelInfo<long> *)()
158         EIGEN_UNUSED_VARIABLE(info);
159     
160         // this is the sequential version!
161         std::size_t sizeA = kc*mc;
162         std::size_t sizeB = kc*nc;
163     
>>>     CID 1490665:    (BAD_ALLOC_ARITHMETIC)
>>>     Adding an offset to the result of a call to "__builtin_alloca" might indicate an under-allocation.
164         ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, blocking.blockA());
165         ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, blocking.blockB());
166     
167         const bool pack_rhs_once = mc!=rows && kc==depth && nc==cols;
168     
169         // For each horizontal panel of the rhs, and corresponding panel of the lhs...

** CID 1490664:    (BAD_ALLOC_ARITHMETIC)
/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h: 74 in Eigen::internal::triangular_solve_matrix<double, long, (int)1, (int)5, (bool)0, (int)0, (int)0, (int)1>::run(long, long, const double *, long, double *, long, long, Eigen::internal::level3_blocking<double, double> &)()
/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h: 75 in Eigen::internal::triangular_solve_matrix<double, long, (int)1, (int)5, (bool)0, (int)0, (int)0, (int)1>::run(long, long, const double *, long, double *, long, long, Eigen::internal::level3_blocking<double, double> &)()


________________________________________________________________________________________________________
*** CID 1490664:    (BAD_ALLOC_ARITHMETIC)
/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h: 74 in Eigen::internal::triangular_solve_matrix<double, long, (int)1, (int)5, (bool)0, (int)0, (int)0, (int)1>::run(long, long, const double *, long, double *, long, long, Eigen::internal::level3_blocking<double, double> &)()
68         Index kc = blocking.kc();                   // cache block size along the K direction
69         Index mc = (std::min)(size,blocking.mc());  // cache block size along the M direction
70     
71         std::size_t sizeA = kc*mc;
72         std::size_t sizeB = kc*cols;
73     
>>>     CID 1490664:    (BAD_ALLOC_ARITHMETIC)
>>>     Adding an offset to the result of a call to "__builtin_alloca" might indicate an under-allocation.
74         ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
75         ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
76     
77         conj_if<Conjugate> conj;
78         gebp_kernel<Scalar, Scalar, Index, OtherMapper, Traits::mr, Traits::nr, Conjugate, false> gebp_kernel;
79         gemm_pack_lhs<Scalar, Index, TriMapper, Traits::mr, Traits::LhsProgress, TriStorageOrder> pack_lhs;
/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h: 75 in Eigen::internal::triangular_solve_matrix<double, long, (int)1, (int)5, (bool)0, (int)0, (int)0, (int)1>::run(long, long, const double *, long, double *, long, long, Eigen::internal::level3_blocking<double, double> &)()
69         Index mc = (std::min)(size,blocking.mc());  // cache block size along the M direction
70     
71         std::size_t sizeA = kc*mc;
72         std::size_t sizeB = kc*cols;
73     
74         ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
>>>     CID 1490664:    (BAD_ALLOC_ARITHMETIC)
>>>     Adding an offset to the result of a call to "__builtin_alloca" might indicate an under-allocation.
75         ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
76     
77         conj_if<Conjugate> conj;
78         gebp_kernel<Scalar, Scalar, Index, OtherMapper, Traits::mr, Traits::nr, Conjugate, false> gebp_kernel;
79         gemm_pack_lhs<Scalar, Index, TriMapper, Traits::mr, Traits::LhsProgress, TriStorageOrder> pack_lhs;
80         gemm_pack_rhs<Scalar, Index, OtherMapper, Traits::nr, ColMajor, false, true> pack_rhs;

** CID 1485985:    (UNCAUGHT_EXCEPT)
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()


________________________________________________________________________________________________________
*** CID 1485985:    (UNCAUGHT_EXCEPT)
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()
48     #include "digikam_version.h"
49     
50     using namespace Digikam;
51     
52     const QString IMAGE_PATH(QFINDTESTDATA("data/testimages/"));
53     
>>>     CID 1485985:    (UNCAUGHT_EXCEPT)
>>>     In function "main(int, char **)" an exception of type "std::invalid_argument" is thrown and never caught.
54     int main(int argc, char** argv)
55     {
56         QApplication app(argc, argv);
57     
58         if (argc != 2)
59         {
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()
48     #include "digikam_version.h"
49     
50     using namespace Digikam;
51     
52     const QString IMAGE_PATH(QFINDTESTDATA("data/testimages/"));
53     
>>>     CID 1485985:    (UNCAUGHT_EXCEPT)
>>>     In function "main(int, char **)" an exception of type "std::invalid_argument" is thrown and never caught.
54     int main(int argc, char** argv)
55     {
56         QApplication app(argc, argv);
57     
58         if (argc != 2)
59         {
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()
48     #include "digikam_version.h"
49     
50     using namespace Digikam;
51     
52     const QString IMAGE_PATH(QFINDTESTDATA("data/testimages/"));
53     
>>>     CID 1485985:    (UNCAUGHT_EXCEPT)
>>>     In function "main(int, char **)" an exception of type "std::invalid_argument" is thrown and never caught.
54     int main(int argc, char** argv)
55     {
56         QApplication app(argc, argv);
57     
58         if (argc != 2)
59         {
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseswitch_cli.cpp: 54 in main()
48     #include "digikam_version.h"
49     
50     using namespace Digikam;
51     
52     const QString IMAGE_PATH(QFINDTESTDATA("data/testimages/"));
53     
>>>     CID 1485985:    (UNCAUGHT_EXCEPT)
>>>     In function "main(int, char **)" an exception of type "std::invalid_argument" is thrown and never caught.
54     int main(int argc, char** argv)
55     {
56         QApplication app(argc, argv);
57     
58         if (argc != 2)
59         {

** CID 1485983:  Error handling issues  (UNCAUGHT_EXCEPT)
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseinit_cli.cpp: 54 in main()


________________________________________________________________________________________________________
*** CID 1485983:  Error handling issues  (UNCAUGHT_EXCEPT)
/mnt/devel/GIT/7.x/core/tests/database/checkdatabaseinit_cli.cpp: 54 in main()
48     #include "digikam_version.h"
49     
50     using namespace Digikam;
51     
52     const QString IMAGE_PATH(QFINDTESTDATA("data/testimages/"));
53     
>>>     CID 1485983:  Error handling issues  (UNCAUGHT_EXCEPT)
>>>     In function "main(int, char **)" an exception of type "std::invalid_argument" is thrown and never caught.
54     int main(int argc, char** argv)
55     {
56         QApplication app(argc, argv);
57     
58         if (argc != 2)
59         {

** CID 1485058:  Resource leaks  (RESOURCE_LEAK)
/mnt/devel/GIT/7.x/core/libs/album/treeview/albumlabelssearchhandler.cpp: 519 in Digikam::AlbumLabelsSearchHandler::slotCheckStateChanged()()


________________________________________________________________________________________________________
*** CID 1485058:  Resource leaks  (RESOURCE_LEAK)
/mnt/devel/GIT/7.x/core/libs/album/treeview/albumlabelssearchhandler.cpp: 519 in Digikam::AlbumLabelsSearchHandler::slotCheckStateChanged()()
513             }
514     
515             emit checkStateChanged(album, Qt::Checked);
516         }
517     
518         d->oldXml = currentXml;
>>>     CID 1485058:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "album" going out of scope leaks the storage it points to.
519     }
520     
521     void AlbumLabelsSearchHandler::slotSetCurrentAlbum()
522     {
523         slotSelectionChanged();
524     }

** CID 1467488:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/facemanagement/threads/facepipelinepackage.h: 57 in ()


________________________________________________________________________________________________________
*** CID 1467488:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/facemanagement/threads/facepipelinepackage.h: 57 in ()

** CID 1466258:  Incorrect expression  (USELESS_CALL)


________________________________________________________________________________________________________
*** CID 1466258:  Incorrect expression  (USELESS_CALL)
/usr/include/qt5/QtCore/qvector.h: 930 in QVector<Digikam::DNNFaceExtractor *>::erase(QTypedArrayData<Digikam::DNNFaceExtractor *>::iterator, QTypedArrayData<Digikam::DNNFaceExtractor *>::iterator)()
924             aend = abegin + itemsToErase;
925             if (!QTypeInfoQuery<T>::isRelocatable) {
926                 iterator moveBegin = abegin + itemsToErase;
927                 iterator moveEnd = d->end();
928                 while (moveBegin != moveEnd) {
929                     if (QTypeInfo<T>::isComplex)
>>>     CID 1466258:  Incorrect expression  (USELESS_CALL)
>>>     Calling "abegin.operator DNNFaceExtractor **()" is only useful for its return value, which is ignored.
930                         static_cast<T *>(abegin)->~T();
931                     new (abegin++) T(*moveBegin++);
932                 }
933                 if (abegin < d->end()) {
934                     // destroy rest of instances
935                     destruct(abegin, d->end());

** CID 1465272:  Incorrect expression  (USELESS_CALL)


________________________________________________________________________________________________________
*** CID 1465272:  Incorrect expression  (USELESS_CALL)
/usr/include/qt5/QtCore/qvector.h: 930 in QVector<Digikam::VideoStripFilter *>::erase(QTypedArrayData<Digikam::VideoStripFilter *>::iterator, QTypedArrayData<Digikam::VideoStripFilter *>::iterator)()
924             aend = abegin + itemsToErase;
925             if (!QTypeInfoQuery<T>::isRelocatable) {
926                 iterator moveBegin = abegin + itemsToErase;
927                 iterator moveEnd = d->end();
928                 while (moveBegin != moveEnd) {
929                     if (QTypeInfo<T>::isComplex)
>>>     CID 1465272:  Incorrect expression  (USELESS_CALL)
>>>     Calling "abegin.operator VideoStripFilter **()" is only useful for its return value, which is ignored.
930                         static_cast<T *>(abegin)->~T();
931                     new (abegin++) T(*moveBegin++);
932                 }
933                 if (abegin < d->end()) {
934                     // destroy rest of instances
935                     destruct(abegin, d->end());

** CID 1465270:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/queuemanager/manager/queuesettings.h: 43 in ()


________________________________________________________________________________________________________
*** CID 1465270:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/queuemanager/manager/queuesettings.h: 43 in ()
37     namespace Digikam
38     {
39     
40     /**
41      * This container host all common settings used by a queue, not including assigned batch tools
42      */
>>>     CID 1465270:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "Digikam::QueueSettings" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
43     class QueueSettings
44     {
45     
46     public:
47     
48         enum RenamingRule

** CID 1465265:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/imageeditor/core/iofilesettings.h: 35 in ()


________________________________________________________________________________________________________
*** CID 1465265:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/utilities/imageeditor/core/iofilesettings.h: 35 in ()
29     #include "drawdecoding.h"
30     #include "digikam_export.h"
31     
32     namespace Digikam
33     {
34     
>>>     CID 1465265:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "Digikam::IOFileSettings" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
35     class DIGIKAM_EXPORT IOFileSettings
36     {
37     
38     public:
39     
40         IOFileSettings()

** CID 1460539:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/database/item/containers/itemposition.h: 46 in ()


________________________________________________________________________________________________________
*** CID 1460539:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/database/item/containers/itemposition.h: 46 in ()
40     namespace Digikam
41     {
42     
43     class CoreDbAccess;
44     class ItemPositionPriv;
45     
>>>     CID 1460539:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "Digikam::ItemPosition" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
46     class DIGIKAM_DATABASE_EXPORT ItemPosition
47     {
48     
49     public:
50     
51         /**

** CID 1455818:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/database/history/itemhistorygraph.h: 45 in ()


________________________________________________________________________________________________________
*** CID 1455818:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/database/history/itemhistorygraph.h: 45 in ()
39     namespace Digikam
40     {
41     
42     class ItemHistoryGraphData;
43     class DImageHistory;
44     
>>>     CID 1455818:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "Digikam::ItemHistoryGraph" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
45     class DIGIKAM_DATABASE_EXPORT ItemHistoryGraph
46     {
47     public:
48     
49         enum HistoryLoadingFlag
50         {

** CID 1455772:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/database/item/containers/iteminfo.h: 77 in ()


________________________________________________________________________________________________________
*** CID 1455772:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/database/item/containers/iteminfo.h: 77 in ()
71      *
72      * NOTE: access rules for all methods in this class:
73      * ItemInfoData members shall be accessed only under CoreDbAccess lock.
74      * The id and albumId are the exception to this rule, as they are
75      * primitive and will never change during the lifetime of an object.
76      */
>>>     CID 1455772:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "Digikam::ItemInfo" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
77     class DIGIKAM_DATABASE_EXPORT ItemInfo
78     {
79     public:
80     
81         typedef DatabaseFields::Hash<QVariant> DatabaseFieldsHashRaw;
82     

** CID 1455763:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/fileactionmanager/fileactionimageinfolist.h: 103 in ()


________________________________________________________________________________________________________
*** CID 1455763:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/mnt/devel/GIT/7.x/core/libs/fileactionmanager/fileactionimageinfolist.h: 103 in ()
97         // Disable
98         explicit FileActionProgressItemContainer(QObject*);
99     };
100     
101     // -------------------------------------------------------------------------------------------------------------------
102     
>>>     CID 1455763:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "Digikam::FileActionItemInfoList" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
103     class FileActionItemInfoList : public QList<ItemInfo>
104     {
105     public:
106     
107         FileActionItemInfoList()
108         {

** CID 1447167:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/usr/include/opencv4/opencv2/dnn/dnn.hpp: 394 in ()


________________________________________________________________________________________________________
*** CID 1447167:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
/usr/include/opencv4/opencv2/dnn/dnn.hpp: 394 in ()
388          *
389          * Each network layer has unique integer id and unique string name inside its network.
390          * LayerId can store either layer name or layer id.
391          *
392          * This class supports reference counting of its instances, i. e. copies point to the same instance.
393          */
>>>     CID 1447167:  Low impact quality  (MISSING_MOVE_ASSIGNMENT)
>>>     Class "cv::dnn::Net" may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
394         class CV_EXPORTS_W_SIMPLE Net
395         {
396         public:
397     
398             CV_WRAP Net();  //!< Default constructor.
399             CV_WRAP ~Net(); //!< Destructor frees the net only if there aren't references to the net anymore.


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yp2OAl-2Fauo86CB28HCT0-2BnD-2F6eFMYt863B1-2B0FLvU5y-2FRWSl8rMA4vGwCkGPp0f1hg-3D8v8q_IpEMwFcbl-2BY9RHaL2m6a3nuAxB4hfm4MTniX0gHjADXfOttx49FYIZGR9u5OHT7fcWqePGZr2yLMne7C45MdX-2BremgOYbklyhsIrPTMjrWXHpODOBNFYhu72lzHfXIaXixOeXD8MZVJ5xZ0GdRIkNN4mOFnBR2PhZ6X0FnOGKA9Mf0Flgws5j7nMd-2FjtthlDoQYVpaikzikRNXpqYQl-2B7Q-3D-3D



More information about the Digikam-devel mailing list