[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