http://bugs.winehq.org/show_bug.cgi?id=3756
Andrey Turkin andrey.turkin@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |andrey.turkin@gmail.com
--- Comment #12 from Andrey Turkin andrey.turkin@gmail.com 2008-10-10 03:39:11 --- (In reply to comment #8)
CoTaskMemAlloc/Free do not use the same heap as the CRT. They use a dedicated heap created on your behalf when the OLE DLL loads.
No, on Windows these use system heap - the one returned by GetProcessHeap(). On Wine they do the same.
First, on the SysAllocString and SysFreeString, they are just convenience functions to CoTaskMemAlloc and CoTaskMemFree.
Sort of true :) The culprit is probably BSTR caching; SysXxxString does not always allocate or free memory for BSTRs so double frees would probably be caught by these functions and silently discarded (I think checked oleaut32 version would cry out loudly on such thing). See http://support.microsoft.com/kb/139071 for some info and way to disable caching. Please try if disabling the cache will make this app crash on Windows