Module: wine Branch: master Commit: 50cd5b6a578a1427a501ef082017aebb66f132e1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=50cd5b6a578a1427a501ef0820...
Author: Ken Thomases ken@codeweavers.com Date: Mon Jan 19 13:11:15 2015 -0600
winemac: Fix conversion of empty RECT to an empty CGRect.
For some empty RECTs, such as { INT_MAX, INT_MAX, INT_MIN, INT_MIN }, right minus left or bottom minus top underflow and wrap around to positive values.
---
dlls/winemac.drv/macdrv.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h index 56ca24f..cf0fc64 100644 --- a/dlls/winemac.drv/macdrv.h +++ b/dlls/winemac.drv/macdrv.h @@ -47,7 +47,9 @@ extern const char* debugstr_cf(CFTypeRef t) DECLSPEC_HIDDEN;
static inline CGRect cgrect_from_rect(RECT rect) { - return CGRectMake(rect.left, rect.top, max(0, rect.right - rect.left), max(0, rect.bottom - rect.top)); + if (rect.left >= rect.right || rect.top >= rect.bottom) + return CGRectMake(rect.left, rect.top, 0, 0); + return CGRectMake(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); }
static inline RECT rect_from_cgrect(CGRect cgrect)