Make sure Region handles invalid rectangles

the boolean operation code assumes rects are valid and
could go into an infinite loop if not. make sure we
abort before that happens.

Bug: 5331198, 5334829
Change-Id: Iee4e3b838ecf504ef21f7447fd2e34a56e7dc3f8
This commit is contained in:
Mathias Agopian 2011-09-19 16:12:08 -07:00
parent 000e95e7eb
commit 0450452e8c

View File

@ -479,6 +479,11 @@ void Region::boolean_operation(int op, Region& dst,
const Region& lhs, const Region& lhs,
const Rect& rhs, int dx, int dy) const Rect& rhs, int dx, int dy)
{ {
if (!rhs.isValid()) {
LOGE("Region::boolean_operation(op=%d) invalid Rect={%d,%d,%d,%d}",
op, rhs.left, rhs.top, rhs.right, rhs.bottom);
}
#if VALIDATE_WITH_CORECG || VALIDATE_REGIONS #if VALIDATE_WITH_CORECG || VALIDATE_REGIONS
boolean_operation(op, dst, lhs, Region(rhs), dx, dy); boolean_operation(op, dst, lhs, Region(rhs), dx, dy);
#else #else