mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 22:00:25 +08:00
fixed comparison to stop integer wrap around
This commit is contained in:
parent
16a11cfb27
commit
3b4f65b186
@ -97,7 +97,7 @@ icvAdjustRect( const void* srcptr, int src_step, int pix_size,
|
||||
rect.x = win_size.width;
|
||||
}
|
||||
|
||||
if( ip.x + win_size.width < src_size.width )
|
||||
if( ip.x < src_size.width - win_size.width )
|
||||
rect.width = win_size.width;
|
||||
else
|
||||
{
|
||||
@ -118,7 +118,7 @@ icvAdjustRect( const void* srcptr, int src_step, int pix_size,
|
||||
else
|
||||
rect.y = -ip.y;
|
||||
|
||||
if( ip.y + win_size.height < src_size.height )
|
||||
if( ip.y < src_size.height - win_size.height )
|
||||
rect.height = win_size.height;
|
||||
else
|
||||
{
|
||||
@ -164,8 +164,8 @@ CvStatus CV_STDCALL icvGetRectSubPix_##flavor##_C1R \
|
||||
src_step /= sizeof(src[0]); \
|
||||
dst_step /= sizeof(dst[0]); \
|
||||
\
|
||||
if( 0 <= ip.x && ip.x + win_size.width < src_size.width && \
|
||||
0 <= ip.y && ip.y + win_size.height < src_size.height ) \
|
||||
if( 0 <= ip.x && ip.x < src_size.width - win_size.width && \
|
||||
0 <= ip.y && ip.y < src_size.height - win_size.height ) \
|
||||
{ \
|
||||
/* extracted rectangle is totally inside the image */ \
|
||||
src += ip.y * src_step + ip.x; \
|
||||
@ -270,8 +270,8 @@ static CvStatus CV_STDCALL icvGetRectSubPix_##flavor##_C3R \
|
||||
src_step /= sizeof( src[0] ); \
|
||||
dst_step /= sizeof( dst[0] ); \
|
||||
\
|
||||
if( 0 <= ip.x && ip.x + win_size.width < src_size.width && \
|
||||
0 <= ip.y && ip.y + win_size.height < src_size.height ) \
|
||||
if( 0 <= ip.x && ip.x < src_size.width - win_size.width && \
|
||||
0 <= ip.y && ip.y < src_size.height - win_size.height ) \
|
||||
{ \
|
||||
/* extracted rectangle is totally inside the image */ \
|
||||
src += ip.y * src_step + ip.x*3; \
|
||||
@ -407,8 +407,8 @@ CvStatus CV_STDCALL icvGetRectSubPix_8u32f_C1R
|
||||
src_step /= sizeof(src[0]);
|
||||
dst_step /= sizeof(dst[0]);
|
||||
|
||||
if( 0 <= ip.x && ip.x + win_size.width < src_size.width &&
|
||||
0 <= ip.y && ip.y + win_size.height < src_size.height )
|
||||
if( 0 <= ip.x && ip.x < src_size.width - win_size.width &&
|
||||
0 <= ip.y && ip.y < src_size.height - win_size.height )
|
||||
{
|
||||
// extracted rectangle is totally inside the image
|
||||
src += ip.y * src_step + ip.x;
|
||||
|
Loading…
Reference in New Issue
Block a user