Fix harmless signed integer overflow.

When computing:
t1 = (bayer[1] + bayer[bayer_step] + bayer[bayer_step+2] + bayer[bayer_step*2+1])*G2Y;
there is a T (unsigned short or char) multiplied by an int which can overflow.
Then again, it is stored to t1 which is unsigned so the overflow disappears.
Keeping all unsigned is safer.
This commit is contained in:
Vincent Rabaud 2021-12-13 23:43:49 +01:00
parent 5462710103
commit 542b3e8a64

View File

@ -603,7 +603,7 @@ public:
virtual void operator ()(const Range& range) const CV_OVERRIDE
{
SIMDInterpolator vecOp;
const int G2Y = 9617;
const unsigned G2Y = 9617;
const int SHIFT = 14;
const T* bayer0 = srcmat.ptr<T>();