On 13 January 2017 at 14:43, Hans Leidekker hans@codeweavers.com wrote:
On Fri, 2017-01-13 at 13:27 +0100, André Hentschel wrote:
diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c index 54f7a37..223d980 100644 --- a/dlls/iphlpapi/iphlpapi_main.c +++ b/dlls/iphlpapi/iphlpapi_main.c @@ -1065,6 +1065,13 @@ static ULONG adapterAddressesFromIndex(ULONG family, ULONG flags, IF_INDEX index debugstr_ipv4(&sa->sin_addr.S_un.S_addr, addr_buf)); fill_unicast_addr_data(aa, ua);
ua->OnLinkPrefixLength = 0;
for (j = 0; j < sizeof(*v4masks) * 8; j++)
{
if (v4masks[i] & 1 << j) ua->OnLinkPrefixLength++;
else break;
}
Please add a helper to compute prefix length instead of duplicating this code. This should probably wait until the code freeze is over.
For what it's worth, if you're adding a helper function anyway, note that you're really just counting the number of trailing zero-bits. GCC has __builtin_ctz() for that, but even without that there are better approaches than testing each bit individually. Alternatively, there's also __builtin_popcount().