components/rtgui_win: check the return value of overlapFunc
overlapFunc will return RTGUI_REGION_STATUS_FAILURE in some circumstance(OOM etc), check it and return error if any thing goes wrong. It prevents garbage values crashing the system. Please ignore the eol diff noise. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1802 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
3d21a83821
commit
fad2648157
|
@ -113,8 +113,7 @@ static rtgui_region_status_t rtgui_break(rtgui_region_t *pReg);
|
||||||
((r1)->x2 >= (r2)->x2) && \
|
((r1)->x2 >= (r2)->x2) && \
|
||||||
((r1)->y1 <= (r2)->y1) && \
|
((r1)->y1 <= (r2)->y1) && \
|
||||||
((r1)->y2 >= (r2)->y2) )
|
((r1)->y2 >= (r2)->y2) )
|
||||||
|
/* true iff box r1 and box r2 constitute cross */
|
||||||
/* true iff Box r1 and Box r2 constitute cross */
|
|
||||||
#define CROSS(r1,r2) \
|
#define CROSS(r1,r2) \
|
||||||
( ((r1)->x1 <= (r2)->x1) && \
|
( ((r1)->x1 <= (r2)->x1) && \
|
||||||
((r1)->x2 >= (r2)->x2) && \
|
((r1)->x2 >= (r2)->x2) && \
|
||||||
|
@ -641,8 +640,9 @@ rtgui_op(
|
||||||
if (ybot > ytop)
|
if (ybot > ytop)
|
||||||
{
|
{
|
||||||
curBand = newReg->data->numRects;
|
curBand = newReg->data->numRects;
|
||||||
(* overlapFunc)(newReg, r1, r1BandEnd, r2, r2BandEnd, ytop, ybot,
|
if ((* overlapFunc)(newReg, r1, r1BandEnd, r2, r2BandEnd, ytop, ybot,
|
||||||
pOverlap);
|
pOverlap) == RTGUI_REGION_STATUS_FAILURE)
|
||||||
|
return RTGUI_REGION_STATUS_FAILURE;
|
||||||
Coalesce(newReg, prevBand, curBand);
|
Coalesce(newReg, prevBand, curBand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -886,6 +886,7 @@ rtgui_region_intersect(rtgui_region_t *newReg,
|
||||||
if (!rtgui_op(newReg, reg1, reg2, rtgui_region_intersectO, RTGUI_REGION_STATUS_FAILURE, RTGUI_REGION_STATUS_FAILURE,
|
if (!rtgui_op(newReg, reg1, reg2, rtgui_region_intersectO, RTGUI_REGION_STATUS_FAILURE, RTGUI_REGION_STATUS_FAILURE,
|
||||||
&overlap))
|
&overlap))
|
||||||
return RTGUI_REGION_STATUS_FAILURE;
|
return RTGUI_REGION_STATUS_FAILURE;
|
||||||
|
|
||||||
rtgui_set_extents(newReg);
|
rtgui_set_extents(newReg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue