[PATCH v2] mpr: Implement WNetClearConnections().

Dmitry Timoshkov dmitry at baikal.ru
Thu Sep 13 01:29:35 CDT 2018


Pierre Schweitzer <pierre at reactos.org> wrote:

> +    size = 0x1000;
> +    resources = HeapAlloc(GetProcessHeap(), 0, size);
> +    if (!resources)
> +    {
> +        WNetCloseEnum(connected);
> +        return WN_OUT_OF_MEMORY;
> +    }
> +
> +    do
> +    {
> +        size = 0x1000;
> +        count = -1;

There is no need to initialize count, you are not verifying it anyway
after the API call.

> +
> +        memset(resources, 0, size);
> +        ret = WNetEnumResourceW(connected, &count, resources, &size);
> +        if (ret == WN_SUCCESS || ret == WN_MORE_DATA)
> +        {
> +            iter = resources;
> +            for (; count; count--)
> +            {
> +                WNetCancelConnection2W(iter->lpLocalName, 0, TRUE);
> +
> +                iter++;
> +            }
> +        }
> +        else
> +            break;
> +    } while (ret != WN_NO_MORE_ENTRIES);

Since you are using an arbitrary size for NETRESOURCEW array it should be
possible to avoid dynamic heap allocation by using a fixed size array of
NETRESOURCEW structures (say 16), or even a single item. That would simplify
the code.

-- 
Dmitry.



More information about the wine-devel mailing list