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