}
(*ppFuncDesc)->lprgelemdescParam[i].u.paramdesc.pparamdescex->cBytes = sizeof(PARAMDESCEX);
+ VariantInit(&(*ppFuncDesc)->lprgelemdescParam[i].u.paramdesc.pparamdescex->varDefaultValue);
hres = ctl2_decode_variant(This->typelib, typedata[hdr_len + i],
&(*ppFuncDesc)->lprgelemdescParam[i].u.paramdesc.pparamdescex->varDefaultValue);
if (FAILED(hres)) {
if (pFuncDesc->lprgelemdescParam[i].tdesc.vt != VT_USERDEFINED)
release_typedesc(pFuncDesc->lprgelemdescParam[i].tdesc.u.lptdesc);
- heap_free(pFuncDesc->lprgelemdescParam[i].u.paramdesc.pparamdescex);
+ if (pFuncDesc->lprgelemdescParam[i].u.paramdesc.pparamdescex)
+ {
+ VariantClear(&pFuncDesc->lprgelemdescParam[i].u.paramdesc.pparamdescex->varDefaultValue);
+ heap_free(pFuncDesc->lprgelemdescParam[i].u.paramdesc.pparamdescex);
+ }
}
heap_free(pFuncDesc->lprgelemdescParam);
}