[PATCH] user32: Fix error handling in MapWindowPoints, ClientToScreen and ScreenToClient and add tests for them. (try 3)

Christian Costa titan.costa at gmail.com
Wed Oct 24 03:33:07 CDT 2012


2012/10/24 Dmitry Timoshkov <dmitry at baikal.ru>

> Christian Costa <titan.costa at gmail.com> wrote:
>
> >  BOOL WINAPI ClientToScreen( HWND hwnd, LPPOINT lppnt )
> >  {
> > +    DWORD error = GetLastError();
> > +
> > +    if (!hwnd)
> > +    {
> > +        SetLastError( ERROR_INVALID_WINDOW_HANDLE );
> > +        return FALSE;
> > +    }
> > +
> > +    SetLastError( 0xdeadbeef );
> >      MapWindowPoints( hwnd, 0, lppnt, 1 );
> > +
> > +    if (GetLastError() != 0xdeadbeef)
> > +        return FALSE;
> > +
> > +    SetLastError(error);
> >      return TRUE;
> >  }
>
> As been said before these games with saving/restoring last error value
> are broken.
>
>
> Last time you said wrong so what do you mean by wrong or broken?
The only way to know if MapWindowPoints fails is to set last error first
and check it
after. If I don't restore the previous value, the tests will not pass. Of
course I can
arrange the tests but hey. And I can check windows handle here as Alexandre
said.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20121024/116f851b/attachment.html>


More information about the wine-devel mailing list