oleaut32: Fix VARIANT_UserFree.
This commit is contained in:
parent
2898b5d9ad
commit
3abd27c624
|
@ -646,23 +646,26 @@ void WINAPI VARIANT_UserFree(unsigned long *pFlags, VARIANT *pvar)
|
||||||
VariantClear(pvar);
|
VariantClear(pvar);
|
||||||
if (!ref) return;
|
if (!ref) return;
|
||||||
|
|
||||||
switch (vt) {
|
if(vt & VT_ARRAY)
|
||||||
case VT_BSTR | VT_BYREF:
|
LPSAFEARRAY_UserFree(pFlags, V_ARRAYREF(pvar));
|
||||||
BSTR_UserFree(pFlags, ref);
|
else
|
||||||
break;
|
{
|
||||||
case VT_VARIANT | VT_BYREF:
|
switch (vt)
|
||||||
VARIANT_UserFree(pFlags, ref);
|
{
|
||||||
break;
|
case VT_BSTR | VT_BYREF:
|
||||||
case VT_RECORD | VT_BYREF:
|
BSTR_UserFree(pFlags, V_BSTRREF(pvar));
|
||||||
FIXME("handle BRECORD by ref\n");
|
break;
|
||||||
break;
|
case VT_VARIANT | VT_BYREF:
|
||||||
case VT_UNKNOWN:
|
VARIANT_UserFree(pFlags, V_VARIANTREF(pvar));
|
||||||
case VT_DISPATCH:
|
break;
|
||||||
IUnknown_Release(V_UNKNOWN(pvar));
|
case VT_RECORD | VT_BYREF:
|
||||||
break;
|
FIXME("handle BRECORD by ref\n");
|
||||||
default:
|
break;
|
||||||
FIXME("handle unknown complex type\n");
|
case VT_UNKNOWN | VT_BYREF:
|
||||||
break;
|
case VT_DISPATCH | VT_BYREF:
|
||||||
|
IUnknown_Release(*V_UNKNOWNREF(pvar));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CoTaskMemFree(ref);
|
CoTaskMemFree(ref);
|
||||||
|
|
Loading…
Reference in New Issue