Fixed several issues found by static analysis
authorMaksim Shabunin <maksim.shabunin@gmail.com>
Wed, 24 Feb 2021 17:31:00 +0000 (20:31 +0300)
committerMaksim Shabunin <maksim.shabunin@gmail.com>
Thu, 25 Feb 2021 12:08:39 +0000 (15:08 +0300)
modules/calib3d/src/sqpnp.hpp
modules/dnn/src/layers/elementwise_layers.cpp
modules/dnn/src/layers/pooling_layer.cpp
modules/dnn/src/model.cpp
modules/videoio/src/cap_msmf.cpp

index f813632..97c10e3 100644 (file)
@@ -72,6 +72,7 @@ private:
         cv::Matx<double, 9, 1> r_hat;
         cv::Matx<double, 3, 1> t;
         double sq_error;
+        SQPSolution() : sq_error(0) {}
     };
 
     /*
index 23d4c50..c57b833 100644 (file)
@@ -1409,28 +1409,23 @@ struct ExpFunctor : public BaseFunctor
     ExpFunctor(float base_ = -1.f, float scale_ = 1.f, float shift_ = 0.f)
         : base(base_), scale(scale_), shift(shift_)
     {
-        CV_Check(base, base == -1.f || base > 0.f, "Unsupported 'base' value");
-    }
-
-    bool supportBackend(int backendId, int targetId)
-    {
-        return backendId == DNN_BACKEND_OPENCV || backendId == DNN_BACKEND_CUDA ||
-               backendId == DNN_BACKEND_HALIDE || backendId == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH;
-    }
-
-    void finalize()
-    {
         // For base > 0 :
         // y     = base^(scale * input + shift)
         // ln(y) = ln(base)*(scale * input + shift)
         // y     = exp((ln(base)*scale) * input + (ln(base)*shift))
         // y     = exp(normalized_scale * input + normalized_shift)
-
-        float ln_base = (base == -1.f) ? 1.f : log(base);
+        CV_Check(base, base == -1.f || base > 0.f, "Unsupported 'base' value");
+        const float ln_base = (base == -1.f) ? 1.f : log(base);
         normScale = scale * ln_base;
         normShift = shift * ln_base;
     }
 
+    bool supportBackend(int backendId, int targetId)
+    {
+        return backendId == DNN_BACKEND_OPENCV || backendId == DNN_BACKEND_CUDA ||
+               backendId == DNN_BACKEND_HALIDE || backendId == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH;
+    }
+
     void apply(const float* srcptr, float* dstptr, int len, size_t planeSize, int cn0, int cn1) const
     {
         float a = normScale, b = normShift;
index ac78c5e..b2fe0a3 100644 (file)
@@ -917,7 +917,7 @@ public:
                             if (max_elem!=last)
                             {
                                 dstData[x0] = *max_elem;
-                                if( compMaxIdx )
+                                if( compMaxIdx && dstMaskData )
                                 {
                                     dstMaskData[x0] = std::distance(first, max_elem);
                                 }
index fae235a..0af8223 100644 (file)
@@ -1213,6 +1213,7 @@ struct TextDetectionModel_DB_Impl : public TextDetectionModel_Impl
     {
         double area = contourArea(inPoly);
         double length = arcLength(inPoly, true);
+        CV_Assert(length > FLT_EPSILON);
         double distance = area * unclipRatio / length;
 
         size_t numPoints = inPoly.size();
index a1d4a28..6b870a2 100644 (file)
@@ -314,7 +314,7 @@ class SourceReaderCB : public IMFSourceReaderCallback
 {
 public:
     SourceReaderCB() :
-        m_nRefCount(0), m_hEvent(CreateEvent(NULL, FALSE, FALSE, NULL)), m_bEOS(FALSE), m_hrStatus(S_OK), m_reader(NULL), m_dwStreamIndex(0)
+        m_nRefCount(0), m_hEvent(CreateEvent(NULL, FALSE, FALSE, NULL)), m_bEOS(FALSE), m_hrStatus(S_OK), m_reader(NULL), m_dwStreamIndex(0), m_lastSampleTimestamp(0)
     {
     }