user32/tests: Use 'start' and 'end' variables in test comparisons

Dmitry Timoshkov dmitry at baikal.ru
Thu Dec 17 05:55:30 CST 2015


Hugh McMaster <hugh.mcmaster at outlook.com> wrote:

> >>> Hugh McMaster wrote:
> >>>
> >>>> - INT start,end;
> >>>> + unsigned short start, end;
> >>>
> >>> This can't work.
> >>
> >> In this case it does - but it is a technicality.
> >>
> >> MSDN says typedef unsigned short WORD; but I should have used unsigned int here, as we cast to WPARAM / UINT_PTR.
> >
> > It doesn't matter what MSDN says or to what the code does the cast to.
> > What matters is what the other side does with the passed in pointers.
> 
> Perhaps I'm misunderstanding your point.

My point is that if you use 'short' the user32 code will corrupt local
variables when it writes to a passed in pointer.

> +ok(LOWORD(len)==start, "Unexpected start position for selection; got %u, expected 0\n", LOWORD(len));
> 
> It is a comparison between an unsigned short and unsigned int.  Do you want the change to unsigned int or not?

Personally I don't see any point in changing existing types. Win32 API is
full of wrong or mismatching signed/unsigned types used by the callee and
the caller sides.

-- 
Dmitry.



More information about the wine-devel mailing list