Unverified Commit d6b82dcd authored by Alexander Alekhin's avatar Alexander Alekhin Committed by GitHub

Merge pull request #14162 from alalek:eliminate_coverity_scan_issues

core: eliminate coverity scan issues (#14162)

* core(hal): avoid using of r,g,b,a parameters in interleave/deinterleave

- static analysis tools blame on possible parameters reordering
- align AVX parameters with corresponding SSE/NEO/VSX/cpp code

* core: avoid "i,j" parameters in Matx methods

- static analysis tools blame on possible parameters reordering

* core: resolve coverity scan issues
parent 5368a4ac
...@@ -167,7 +167,7 @@ public: ...@@ -167,7 +167,7 @@ public:
template<int m1, int n1> Matx<_Tp, m1, n1> reshape() const; template<int m1, int n1> Matx<_Tp, m1, n1> reshape() const;
//! extract part of the matrix //! extract part of the matrix
template<int m1, int n1> Matx<_Tp, m1, n1> get_minor(int i, int j) const; template<int m1, int n1> Matx<_Tp, m1, n1> get_minor(int base_row, int base_col) const;
//! extract the matrix row //! extract the matrix row
Matx<_Tp, 1, n> row(int i) const; Matx<_Tp, 1, n> row(int i) const;
...@@ -195,8 +195,8 @@ public: ...@@ -195,8 +195,8 @@ public:
Matx<_Tp, m, n> div(const Matx<_Tp, m, n>& a) const; Matx<_Tp, m, n> div(const Matx<_Tp, m, n>& a) const;
//! element access //! element access
const _Tp& operator ()(int i, int j) const; const _Tp& operator ()(int row, int col) const;
_Tp& operator ()(int i, int j); _Tp& operator ()(int row, int col);
//! 1D element access //! 1D element access
const _Tp& operator ()(int i) const; const _Tp& operator ()(int i) const;
...@@ -750,13 +750,13 @@ Matx<_Tp, m1, n1> Matx<_Tp, m, n>::reshape() const ...@@ -750,13 +750,13 @@ Matx<_Tp, m1, n1> Matx<_Tp, m, n>::reshape() const
template<typename _Tp, int m, int n> template<typename _Tp, int m, int n>
template<int m1, int n1> inline template<int m1, int n1> inline
Matx<_Tp, m1, n1> Matx<_Tp, m, n>::get_minor(int i, int j) const Matx<_Tp, m1, n1> Matx<_Tp, m, n>::get_minor(int base_row, int base_col) const
{ {
CV_DbgAssert(0 <= i && i+m1 <= m && 0 <= j && j+n1 <= n); CV_DbgAssert(0 <= base_row && base_row+m1 <= m && 0 <= base_col && base_col+n1 <= n);
Matx<_Tp, m1, n1> s; Matx<_Tp, m1, n1> s;
for( int di = 0; di < m1; di++ ) for( int di = 0; di < m1; di++ )
for( int dj = 0; dj < n1; dj++ ) for( int dj = 0; dj < n1; dj++ )
s(di, dj) = (*this)(i+di, j+dj); s(di, dj) = (*this)(base_row+di, base_col+dj);
return s; return s;
} }
...@@ -787,17 +787,17 @@ typename Matx<_Tp, m, n>::diag_type Matx<_Tp, m, n>::diag() const ...@@ -787,17 +787,17 @@ typename Matx<_Tp, m, n>::diag_type Matx<_Tp, m, n>::diag() const
} }
template<typename _Tp, int m, int n> inline template<typename _Tp, int m, int n> inline
const _Tp& Matx<_Tp, m, n>::operator()(int i, int j) const const _Tp& Matx<_Tp, m, n>::operator()(int row_idx, int col_idx) const
{ {
CV_DbgAssert( (unsigned)i < (unsigned)m && (unsigned)j < (unsigned)n ); CV_DbgAssert( (unsigned)row_idx < (unsigned)m && (unsigned)col_idx < (unsigned)n );
return this->val[i*n + j]; return this->val[row_idx*n + col_idx];
} }
template<typename _Tp, int m, int n> inline template<typename _Tp, int m, int n> inline
_Tp& Matx<_Tp, m, n>::operator ()(int i, int j) _Tp& Matx<_Tp, m, n>::operator ()(int row_idx, int col_idx)
{ {
CV_DbgAssert( (unsigned)i < (unsigned)m && (unsigned)j < (unsigned)n ); CV_DbgAssert( (unsigned)row_idx < (unsigned)m && (unsigned)col_idx < (unsigned)n );
return val[i*n + j]; return val[row_idx*n + col_idx];
} }
template<typename _Tp, int m, int n> inline template<typename _Tp, int m, int n> inline
......
...@@ -918,7 +918,13 @@ int cv::borderInterpolate( int p, int len, int borderType ) ...@@ -918,7 +918,13 @@ int cv::borderInterpolate( int p, int len, int borderType )
{ {
CV_TRACE_FUNCTION_VERBOSE(); CV_TRACE_FUNCTION_VERBOSE();
CV_DbgAssert(len > 0);
#ifdef CV_STATIC_ANALYSIS
if(p >= 0 && p < len)
#else
if( (unsigned)p < (unsigned)len ) if( (unsigned)p < (unsigned)len )
#endif
; ;
else if( borderType == BORDER_REPLICATE ) else if( borderType == BORDER_REPLICATE )
p = p < 0 ? 0 : len - 1; p = p < 0 ? 0 : len - 1;
...@@ -934,7 +940,11 @@ int cv::borderInterpolate( int p, int len, int borderType ) ...@@ -934,7 +940,11 @@ int cv::borderInterpolate( int p, int len, int borderType )
else else
p = len - 1 - (p - len) - delta; p = len - 1 - (p - len) - delta;
} }
#ifdef CV_STATIC_ANALYSIS
while(p < 0 || p >= len);
#else
while( (unsigned)p >= (unsigned)len ); while( (unsigned)p >= (unsigned)len );
#endif
} }
else if( borderType == BORDER_WRAP ) else if( borderType == BORDER_WRAP )
{ {
......
...@@ -1020,7 +1020,7 @@ static void cvTsPerspectiveTransform( const CvArr* _src, CvArr* _dst, const CvMa ...@@ -1020,7 +1020,7 @@ static void cvTsPerspectiveTransform( const CvArr* _src, CvArr* _dst, const CvMa
int i, j, cols; int i, j, cols;
int cn, depth, mat_depth; int cn, depth, mat_depth;
CvMat astub, bstub, *a, *b; CvMat astub, bstub, *a, *b;
double mat[16]; double mat[16] = {0.0};
a = cvGetMat( _src, &astub, 0, 0 ); a = cvGetMat( _src, &astub, 0, 0 );
b = cvGetMat( _dst, &bstub, 0, 0 ); b = cvGetMat( _dst, &bstub, 0, 0 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment