Module: wine Branch: master Commit: 1f15169f725894edfa2f33e16b8827d3d2c11a6f URL: http://source.winehq.org/git/wine.git/?a=commit;h=1f15169f725894edfa2f33e16b...
Author: Javier Cantero jcantero@escomposlinux.org Date: Thu Mar 20 16:07:32 2014 +0100
user32: Fix side effect in SubtractRect().
---
dlls/user32/uitools.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/uitools.c b/dlls/user32/uitools.c index c11a1d3..1afb1c89 100644 --- a/dlls/user32/uitools.c +++ b/dlls/user32/uitools.c @@ -1421,14 +1421,14 @@ BOOL WINAPI SubtractRect( LPRECT dest, const RECT *src1, const RECT *src2 ) SetRectEmpty( dest ); return FALSE; } - *dest = *src1; if (IntersectRect( &tmp, src1, src2 )) { - if (EqualRect( &tmp, dest )) + if (EqualRect( &tmp, src1 )) { SetRectEmpty( dest ); return FALSE; } + *dest = *src1; if ((tmp.top == dest->top) && (tmp.bottom == dest->bottom)) { if (tmp.left == dest->left) dest->left = tmp.right; @@ -1440,6 +1440,10 @@ BOOL WINAPI SubtractRect( LPRECT dest, const RECT *src1, const RECT *src2 ) else if (tmp.bottom == dest->bottom) dest->bottom = tmp.top; } } + else + { + *dest = *src1; + } return TRUE; }