On Mon, 30 Aug 2004 08:56:38 +0000, Jacek Caban wrote:
It's not a bug. It's a difference between Wine's and native Windows implementation.
By definition an application that works fine on Windows should work fine on Wine. If they don't, it's a bug.
When you run the attached test with the builtin version, you'll get: ref = 2 ref = 3 ITypeLib has a reference to the linked list of ITypeInfo. Functions GetTypeInfo and GetTypeInfoOfGuid search this list, call ITypeInfo::AddRef and returns the reference to ITypeInfo. ITypeInfo is destroyed when ITypeLib is destroyed (it means that each other ITypeInfos are destroyed too). Running this test with native Windows dll, results are: ref = 1 ref = 2
Sounds like a bug to me. Refcounting differences can cause crashes and memory leaks.
I don't thik it Wine's bug. Applications don't depend on this stuff and Wine's ref handling is correct.
I'd be very surprised if there were no apps that depended on it, actually. Given the number of crashes we've seen caused by refcount problems in this part of the code, I'd say there definitely are.