[PATCH 2/2] wined3d: Re-use old wined3d_private_data structures if the size matches.

Stefan Dösinger stefandoesinger at gmail.com
Fri Mar 14 10:57:44 CDT 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 2014-03-14 16:27, schrieb Henri Verbeet:
> On 14 March 2014 14:50, Stefan Dösinger <stefan at codeweavers.com> wrote:
>> +    if ((old = wined3d_private_store_get_private_data(store, guid)) && old->size == data_size)
>> +    {
>> +        IUnknown *release = NULL;
>> +        if (old->flags & WINED3DSPD_IUNKNOWN)
>> +            release = old->content.object;
>> +        memcpy(old->content.data, ptr, data_size);
>> +        old->flags = flags;
>> +        if (flags & WINED3DSPD_IUNKNOWN)
>> +            IUnknown_AddRef(old->content.object);
>> +        if (release)
>> +            IUnknown_Release(release);
>> +        return WINED3D_OK;
>> +    }
> What is the motivation for this? It certainly doesn't make the code
> any prettier.
Avoid re-allocating the same sized object needlessly. But I don't feel
strongly about it.

I'll send a separate patch that fixes the release before addref
problem without retaining the allocated memory. Pick whichever you like.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJTIyb4AAoJEN0/YqbEcdMw4A4QAJHCponfvsfW50Hq+Oumolxo
yP9nEnNz41PsMrWIKPN10McjJDlN002G7wy9B1WQu52zbNHAnt8eIetRb96S+b6i
WP5dRF7dx1LWSbK0x/qek7vZAqWapLtvxhxRxNxM/k6jTetWfpI2WC+tmzXS49Z1
ZlgsvI2zx6rzfGpfMbvXIhBfUtm4aPb+OIJ3zaytctZPBcSa9V+xUo43faLRKljz
zEV4C1Vn/Jqx6PMjx6zQ968/sUQq0P5D5fUq/UBStUEPyRhscneKpmaQSmeKO0tG
Y9FlwXdnd1Gv7jZqT8Ixx/QAb4voql1hUqh9ZVxx/DoqwJzCbDXNprzIQG0+hlFq
mAFBOUVhuqH2bokiFkbOh66h4TEBScQcfEraPdbA48FumQ06o0cl6HTRXN+O76jg
SI02NVjol603BFzjfobE3RULi0ar+HVholu9fz3z8MzRvXLnWXXh2W9HH1mDgJ3u
/PSBduOjal+lJWn7ZYo/ZlLMWKWLDIYgRzhB6fpqUAQg3kGtuh9N14WgQWEwOhaK
NPO5u1CL2z/LN6qdjyYWhEJiRCh1XV4l8d8Waq4KOPnySnGQiPFMQUTGwUEix3SU
fCZYCSDgVAL9y9m35A/JyFaCA2Vn+z6SUcO0g1UKtVKroD7JRb1ayqN6WVX2nEkH
8oWDPyCqOY0fIaUrKh6l
=fdE1
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list