Ok, well i can easily address the bound checking issue by moving the
bound checks. i agree before doing the locks sounds correct.
I am unsure if you are thinking i should be concerned about the mirrored
or flipped destinations as i will admit I have no idea what that entails.
I will look more for things that depend on the position of the rect on
the within the surface. I think the trick is that xdst us assigned to
DestRect in the code and with my patch they may need to be treated
differently.
I had a suspicion this was not going to be as easy as it looked.
-aric
H. Verbeet wrote:
> 2008/7/28 Aric Stewart <[EMAIL PROTECTED]>:
>> + if (Src != This)
>> + {
>> + xdst.top = 0;
>> + xdst.bottom = DestRect->bottom - DestRect->top;
>> + xdst.left = 0;
>> + xdst.right = DestRect->right - DestRect->left;
>> + }
> This will still break the rectangle bounds check further down (around
> line 940), and anything else that depends on the position of the
> rectangle within the surface. Come to think of it, the rectangle
> bounds check should probably be done before trying to lock the
> surface. Something else I just thought of is that LockRect() probably
> won't handle mirrored or flipped destination rectangles very well.
>
>