=?UTF-8?Q?Fr=C3=A9d=C3=A9ric=20Delanoy=20?=: ole32: Add helper for string table memory freeing.
Alexandre Julliard
julliard at winehq.org
Tue Nov 27 14:30:50 CST 2012
Module: wine
Branch: master
Commit: 02da0411e148ccb21ab2dc8f72764d3491adb7aa
URL: http://source.winehq.org/git/wine.git/?a=commit;h=02da0411e148ccb21ab2dc8f72764d3491adb7aa
Author: Frédéric Delanoy <frederic.delanoy at gmail.com>
Date: Mon Nov 26 12:41:41 2012 +0100
ole32: Add helper for string table memory freeing.
---
dlls/ole32/filemoniker.c | 43 +++++++++++++++++--------------------------
1 files changed, 17 insertions(+), 26 deletions(-)
diff --git a/dlls/ole32/filemoniker.c b/dlls/ole32/filemoniker.c
index b3a5cc2..37c86ca 100644
--- a/dlls/ole32/filemoniker.c
+++ b/dlls/ole32/filemoniker.c
@@ -657,6 +657,15 @@ FileMonikerImpl_Reduce(IMoniker* iface, IBindCtx* pbc, DWORD dwReduceHowFar,
return MK_S_REDUCED_TO_SELF;
}
+static void free_stringtable(LPOLESTR *stringTable)
+{
+ int i;
+
+ for (i=0; stringTable[i]!=NULL; i++)
+ CoTaskMemFree(stringTable[i]);
+ CoTaskMemFree(stringTable);
+}
+
/******************************************************************************
* FileMoniker_ComposeWith
*/
@@ -731,12 +740,8 @@ FileMonikerImpl_ComposeWith(IMoniker* iface, IMoniker* pmkRight,
}
else res = E_OUTOFMEMORY;
- for(i=0; strDec1[i]!=NULL;i++)
- CoTaskMemFree(strDec1[i]);
- for(i=0; strDec2[i]!=NULL;i++)
- CoTaskMemFree(strDec2[i]);
- CoTaskMemFree(strDec1);
- CoTaskMemFree(strDec2);
+ free_stringtable(strDec1);
+ free_stringtable(strDec2);
CoTaskMemFree(str1);
CoTaskMemFree(str2);
@@ -1004,17 +1009,9 @@ FileMonikerImpl_CommonPrefixWith(IMoniker* iface,IMoniker* pmkOther,IMoniker** p
{
for(i=0;i<sameIdx;i++)
strcatW(commonPath,stringTable1[i]);
-
- for(i=0;i<nb1;i++)
- CoTaskMemFree(stringTable1[i]);
-
- CoTaskMemFree(stringTable1);
-
- for(i=0;i<nb2;i++)
- CoTaskMemFree(stringTable2[i]);
-
- CoTaskMemFree(stringTable2);
-
+
+ free_stringtable(stringTable1);
+ free_stringtable(stringTable2);
ret = CreateFileMoniker(commonPath,ppmkPrefix);
}
HeapFree(GetProcessHeap(),0,commonPath);
@@ -1167,12 +1164,8 @@ FileMonikerImpl_RelativePathTo(IMoniker* iface,IMoniker* pmOther, IMoniker** ppm
res=CreateFileMoniker(relPath,ppmkRelPath);
- for(j=0; tabStr1[j]!=NULL;j++)
- CoTaskMemFree(tabStr1[j]);
- for(j=0; tabStr2[j]!=NULL;j++)
- CoTaskMemFree(tabStr2[j]);
- CoTaskMemFree(tabStr1);
- CoTaskMemFree(tabStr2);
+ free_stringtable(tabStr1);
+ free_stringtable(tabStr2);
CoTaskMemFree(str1);
CoTaskMemFree(str2);
HeapFree(GetProcessHeap(),0,relPath);
@@ -1410,9 +1403,7 @@ static HRESULT FileMonikerImpl_Construct(FileMonikerImpl* This, LPCOLESTR lpszPa
strcatW(This->filePathName,bkSlash);
}
- for(i=0; tabStr[i]!=NULL;i++)
- CoTaskMemFree(tabStr[i]);
- CoTaskMemFree(tabStr);
+ free_stringtable(tabStr);
return S_OK;
}
More information about the wine-cvs
mailing list