On 11/28/2012 17:43, Alexandre Julliard wrote:
Nikolay Sivov nsivov@codeweavers.com writes:
@@ -137,8 +137,13 @@ static HRESULT WINAPI WshCollection_GetTypeInfoCount(IWshCollection *iface, UINT static HRESULT WINAPI WshCollection_GetTypeInfo(IWshCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { WshCollection *This = impl_from_IWshCollection(iface);
- HRESULT hr;
TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
- return get_typeinfo(IWshCollection_tid, ppTInfo);
- hr = get_typeinfo(IWshCollection_tid, ppTInfo);
- ITypeInfo_AddRef(*ppTInfo);
- return hr;
You'd need to check for error first, but the AddRef should really be in get_typeinfo().
I agree about error part. The reason why AddRef shouldn't be in get_typeinfo() is to avoid pointless AddRef/Release when pointer does not go out, and the only case when it's returned to caller is this GetTypeInfo() method.