Huw Davies : oleaut32: Fix several memory leaks in tests.
Alexandre Julliard
julliard at winehq.org
Mon Dec 7 10:26:15 CST 2009
Module: wine
Branch: master
Commit: 0099431f084d632964bb129fab41962237ea117d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0099431f084d632964bb129fab41962237ea117d
Author: Huw Davies <huw at codeweavers.com>
Date: Sun Dec 6 13:11:33 2009 +0000
oleaut32: Fix several memory leaks in tests.
Found by Valgrind.
---
dlls/oleaut32/tests/vartype.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c
index 87f2901..7e7fe35 100644
--- a/dlls/oleaut32/tests/vartype.c
+++ b/dlls/oleaut32/tests/vartype.c
@@ -4855,6 +4855,7 @@ static void test_VarBstrFromR4(void)
*/
ok(memcmp(bstr, szNative, sizeof(szNative)) == 0, "string different\n");
}
+ SysFreeString(bstr);
}
f = -0.0;
@@ -4866,6 +4867,7 @@ static void test_VarBstrFromR4(void)
ok(memcmp(bstr + 1, szZero, sizeof(szZero)) == 0, "negative zero (got %s)\n", wtoascii(bstr));
else
ok(memcmp(bstr, szZero, sizeof(szZero)) == 0, "negative zero (got %s)\n", wtoascii(bstr));
+ SysFreeString(bstr);
}
/* The following tests that lcid is used for decimal separator even without LOCALE_USE_NLS */
@@ -4875,6 +4877,7 @@ static void test_VarBstrFromR4(void)
if (bstr)
{
ok(memcmp(bstr, szOneHalf_English, sizeof(szOneHalf_English)) == 0, "English locale failed (got %s)\n", wtoascii(bstr));
+ SysFreeString(bstr);
}
f = 0.5;
hres = pVarBstrFromR4(f, lcid_spanish, LOCALE_NOUSEROVERRIDE, &bstr);
@@ -4882,12 +4885,13 @@ static void test_VarBstrFromR4(void)
if (bstr)
{
ok(memcmp(bstr, szOneHalf_Spanish, sizeof(szOneHalf_Spanish)) == 0, "Spanish locale failed (got %s)\n", wtoascii(bstr));
+ SysFreeString(bstr);
}
}
#define BSTR_DATE(dt,str) SysFreeString(bstr); bstr = NULL; \
hres = pVarBstrFromDate(dt,lcid,LOCALE_NOUSEROVERRIDE,&bstr); \
- if (bstr) WideCharToMultiByte(CP_ACP, 0, bstr, -1, buff, sizeof(buff), 0, 0); \
+ if (bstr) {WideCharToMultiByte(CP_ACP, 0, bstr, -1, buff, sizeof(buff), 0, 0); SysFreeString(bstr);} \
else buff[0] = 0; \
ok(hres == S_OK && !strcmp(str,buff), "Expected '%s', got '%s', hres = 0x%08x\n", \
str, buff, hres)
@@ -4920,6 +4924,7 @@ static void test_VarBstrFromDate(void)
if (hres== S_OK && bstr)\
{\
ok(lstrcmpW(bstr, e) == 0, "invalid number (got %s)\n", wtoascii(bstr));\
+ SysFreeString(bstr);\
}
static void test_VarBstrFromCy(void)
@@ -4982,6 +4987,7 @@ static void test_VarBstrFromCy(void)
if (hres== S_OK && bstr)\
{\
ok(lstrcmpW(bstr, e) == 0, "invalid number (got %s)\n", wtoascii(bstr));\
+ SysFreeString(bstr);\
}
#define BSTR_DEC64(l, a, b, c, x, d, e) \
@@ -4991,6 +4997,7 @@ static void test_VarBstrFromCy(void)
if (hres== S_OK && bstr)\
{\
ok(lstrcmpW(bstr, e) == 0, "invalid number (got %s)\n", wtoascii(bstr));\
+ SysFreeString(bstr);\
}
static void test_VarBstrFromDec(void)
@@ -5162,6 +5169,7 @@ static void test_VarBstrCmp(void)
VARBSTRCMP(bstr2,bstr,0,VARCMP_GT);
SysFreeString(bstr2);
SysFreeString(bstr);
+ SysFreeString(bstrempty);
}
/* Get the internal representation of a BSTR */
@@ -5858,6 +5866,7 @@ static void test_EmptyChangeTypeEx(void)
ok(hres == hExpected && (hres != S_OK || V_VT(&vDst) == vt),
"change empty: vt %d expected 0x%08x, got 0x%08x, vt %d\n",
vt, hExpected, hres, V_VT(&vDst));
+ if(hres == S_OK) VariantClear(&vDst);
}
}
More information about the wine-cvs
mailing list