[2/3] dpnet: Free previous allocated data (try 2)

Stefan Dösinger stefandoesinger at gmail.com
Wed Mar 4 05:17:16 CST 2015


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

Am 2015-03-04 um 04:15 schrieb Alistair Leslie-Hughes:
> +            if(entry->type == DPNA_DATATYPE_STRING_ANSI)
> +               heap_free(entry->data.ansi);
> +            else if(entry->type == DPNA_DATATYPE_STRING)
> +                heap_free(entry->data.string);
> +            else if(entry->type == DPNA_DATATYPE_BINARY)
> +                heap_free(entry->data.binary);
This code is OK with me.

What I think Nikolai meant was that you don't need the if / else if /
else if checks and can just call heap_free(entry->data.binary) (or
heap_free(entry->data.ansi) or heap_free(entry->data.string)) regardless
of the type because it's just a union.

However, there's a caveat, and this is why I think the code you have is
reasonable: You don't want to free a non-pointer type
(DPNA_DATATYPE_DWORD, DPNA_DATATYPE_GUID), so you need to check the type
anyway. And if you have the code above or

if (type == STRING || type == BINARY || type == ANSI)
    free(data.binary)

doesn't really make a difference IMHO.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJU9um8AAoJEN0/YqbEcdMwh1wP/iQp3BbqRYT/5UqR+SJodAA+
4MlKAmhdZ395k4G5AFAw6uZ1RnOxVjq0BH20jQbVo+l2bNiHPEsSQ0Ua9tcdQjR3
wA70dQpIQgL9/XCHxQZKfZN1ujEcAR0IsgOxqEW7mPQNwe/hRYPSLysubUJaYGeR
cExeKFdabEM5pEIu+OwPxdvevRSVMA2Je38dlggMnIkq4ajJIM7I+x87GEJAxzaJ
U3RsqqgTI2jvFspG5F12/O3hpynoAPUiHgsoQgzolMIcJLwqMaCFuM+Ify4kZotq
h/Hdk8hR5BjBwAOJZZwJqyCYaulSVftRYH1k33N75o7LHOgwWDps/C7jzg7sgyLE
F+187z1RBfWtvUmeJORRlezo1v9rceIqRX8H7rfKfsec500gF0KtVWcQxhENxfp/
+j5vgms5gSAtzvgig50Oq35GCULWspjzz4AnxzEB8BH/Z6ugE4zakejlAjUVMUVR
T0iTKkhp25U7L4jl8TqKSJ82TZMh2Yc8ydrieO/XVNtMH5yjIw/A0Ecb+laKlwMy
OfI9rQOUPyFhxu2dtxEn4MCgCussBF+Py9gL3mZ2ausfIttw8hH2nigb0sMud0YC
oDPyTmVDK5ALvducoHi/QQhBoCh1duYkiscAj1n3IfYBNc/d89vKxmtEDr9O/jk1
QNm18QYpQzTXoprDPmQM
=TILa
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list