[2/4] dpnet: Free previous alloocated data (try 5)

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Thu Mar 5 22:12:54 CST 2015


Hi,
No Changes.

Changelog:
         dpnet: Free previous alloocated data


Best Regards
     Alistair Leslie-Hughes


-------------- next part --------------
>From 4490edd9c9d7441331e2c0114023196887bc835e Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Tue, 3 Mar 2015 08:43:55 +1100
Subject: [PATCH 07/10] Free previous alloocated data

---
 dlls/dpnet/address.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/dlls/dpnet/address.c b/dlls/dpnet/address.c
index 5eea0cb..6c91f48 100644
--- a/dlls/dpnet/address.c
+++ b/dlls/dpnet/address.c
@@ -426,6 +426,13 @@ static HRESULT WINAPI IDirectPlay8AddressImpl_AddComponent(IDirectPlay8Address *
             TRACE("Found %s\n", debugstr_w(pwszName));
             found = TRUE;
 
+            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);
+
             break;
         }
     }
@@ -451,20 +458,14 @@ static HRESULT WINAPI IDirectPlay8AddressImpl_AddComponent(IDirectPlay8Address *
             TRACE("(%p, %u): GUID Type -> %s\n", lpvData, dwDataSize, debugstr_guid(lpvData));
             break;
         case DPNA_DATATYPE_STRING:
-            heap_free(entry->data.string);
-
             entry->data.string = heap_strdupW((WCHAR*)lpvData);
             TRACE("(%p, %u): STRING Type -> %s\n", lpvData, dwDataSize, debugstr_w((WCHAR*)lpvData));
             break;
         case DPNA_DATATYPE_STRING_ANSI:
-            heap_free(entry->data.ansi);
-
             entry->data.ansi = heap_strdupA((CHAR*)lpvData);
             TRACE("(%p, %u): ANSI STRING Type -> %s\n", lpvData, dwDataSize, (const CHAR*) lpvData);
             break;
         case DPNA_DATATYPE_BINARY:
-            heap_free(entry->data.binary);
-
             entry->data.binary = heap_alloc(dwDataSize);
             memcpy(entry->data.binary, lpvData, dwDataSize);
             TRACE("(%p, %u): BINARY Type\n", lpvData, dwDataSize);
-- 
1.9.1





More information about the wine-patches mailing list