RFC: HKCR merge implementation

George Stephanos gaf.stephanos at gmail.com
Tue Sep 10 18:45:00 CDT 2013


>
>
>> a couple bitwise nits in your first patch:
>
> +#define HKCR_MASK 2
> +#define IS_HKCR(hk) ((UINT_PTR)hk > 0 && ((UINT_PTR)hk & 3) == HKCR_MASK)
>
> Typically a mask would define all the bits that could be set, and a flag
> would be the particular bit you want to test. Something like:
> #define SPECIAL_HKEY_MASK 3
> #define HKCR_FLAG 2
>
> Also, in the following expression:
> ((UINT_PTR)hk > 0 && ((UINT_PTR)hk & 3)
>
> The second can never be true when the first is false, so you can just drop
> the first.
>

How? isn't 0x80000003 < 0 && 0x80000003 & 3?
I just realized the UINT_PTR cast forces it to be >0 anyway.


> These suggestions yield:
> #define IS_HKCR(hk) (((UINT_PTR)(hk) & SPECIAL_HKEY_MASK) == HKCR_FLAG)
>

Thanks.


> --Juan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20130911/01674ce2/attachment.html>


More information about the wine-devel mailing list