[1/2] ole32: Add helper for string table memory freeing (try 2)
Frédéric Delanoy
frederic.delanoy at gmail.com
Mon Nov 26 05:41:41 CST 2012
---
dlls/ole32/filemoniker.c | 44 ++++++++++++++++++--------------------------
1 file changed, 18 insertions(+), 26 deletions(-)
diff --git a/dlls/ole32/filemoniker.c b/dlls/ole32/filemoniker.c
index b3a5cc2..7f9600a 100644
--- a/dlls/ole32/filemoniker.c
+++ b/dlls/ole32/filemoniker.c
@@ -657,6 +657,16 @@ 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 +741,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 +1010,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 +1165,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 +1404,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;
}
--
1.8.0
More information about the wine-patches
mailing list