23 Mar
2010
23 Mar
'10
10:47 a.m.
Andrew Nguyen <arethusa26(a)gmail.com> writes:
@@ -221,9 +221,17 @@ static HRESULT WINAPI IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface, LPCWS
p = This->properties; while (NULL != p) { - if (0 == lstrcmpW(p->vName, pwszPropName)) { - VariantCopy(pvarProp, &p->v); - return S_OK; + if (0 == lstrcmpW(p->vName, pwszPropName)) { + HRESULT hr = VariantClear(pvarProp); + if (hr == DISP_E_ARRAYISLOCKED) + { + while (SafeArrayUnlock(V_ARRAY(pvarProp)) == S_OK); + VariantClear(pvarProp);
This looks suspicious. Do you have evidence that the array should be forcibly unlocked and destroyed? -- Alexandre Julliard julliard(a)winehq.org