Benjamin Arai : oleaut32: Removes extra string allocation for
varformat: VarMonthName.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Aug 4 06:30:01 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 0227b8cba228b17159a6ca392b801eda38815dca
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=0227b8cba228b17159a6ca392b801eda38815dca
Author: Benjamin Arai <me at benjaminarai.com>
Date: Thu Aug 3 19:59:22 2006 -0700
oleaut32: Removes extra string allocation for varformat:VarMonthName.
---
dlls/oleaut32/varformat.c | 13 ++++---------
1 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/dlls/oleaut32/varformat.c b/dlls/oleaut32/varformat.c
index d515bc3..836fa69 100644
--- a/dlls/oleaut32/varformat.c
+++ b/dlls/oleaut32/varformat.c
@@ -2471,7 +2471,6 @@ HRESULT WINAPI VarMonthName(INT iMonth,
{
DWORD localeValue;
INT size;
- WCHAR *str;
if ((iMonth < 1) || (iMonth > 12))
return E_INVALIDARG;
@@ -2489,18 +2488,14 @@ HRESULT WINAPI VarMonthName(INT iMonth,
ERR("GetLocaleInfo 0x%lx failed.\n", localeValue);
return HRESULT_FROM_WIN32(GetLastError());
}
- str = HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*size);
- if (!str)
+ *pbstrOut = SysAllocStringLen(NULL,size - 1);
+ if (!*pbstrOut)
return E_OUTOFMEMORY;
- size = GetLocaleInfoW(LOCALE_USER_DEFAULT,localeValue, str, size);
+ size = GetLocaleInfoW(LOCALE_USER_DEFAULT,localeValue, *pbstrOut, size);
if (!size) {
ERR("GetLocaleInfo of 0x%lx failed in 2nd stage?!\n", localeValue);
- HeapFree(GetProcessHeap(),0,str);
+ SysFreeString(*pbstrOut);
return HRESULT_FROM_WIN32(GetLastError());
}
- *pbstrOut = SysAllocString(str);
- HeapFree(GetProcessHeap(),0,str);
- if (!*pbstrOut)
- return E_OUTOFMEMORY;
return S_OK;
}
More information about the wine-cvs
mailing list