提交 542b3e8a 编写于 作者: V Vincent Rabaud

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.
上级 54627101
...@@ -603,7 +603,7 @@ public: ...@@ -603,7 +603,7 @@ public:
virtual void operator ()(const Range& range) const CV_OVERRIDE virtual void operator ()(const Range& range) const CV_OVERRIDE
{ {
SIMDInterpolator vecOp; SIMDInterpolator vecOp;
const int G2Y = 9617; const unsigned G2Y = 9617;
const int SHIFT = 14; const int SHIFT = 14;
const T* bayer0 = srcmat.ptr<T>(); const T* bayer0 = srcmat.ptr<T>();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册