Module: wine Branch: refs/heads/master Commit: 0227b8cba228b17159a6ca392b801eda38815dca URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=0227b8cba228b17159a6ca39...
Author: Benjamin Arai me@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; }