Module: wine Branch: master Commit: 2f707558fcd29df82afd71338591dd596807ae3a URL: http://source.winehq.org/git/wine.git/?a=commit;h=2f707558fcd29df82afd713385...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Jul 30 15:20:04 2013 +0200
oleaut32: Store PARAMDESCEX structure inside lprgelemdescParam.
Thanks to this change we don't need to free the data differently depending on how it was created (by typelib reading or writing code).
---
dlls/oleaut32/typelib.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 44eea5b..a8916d8 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -2356,7 +2356,7 @@ MSFT_DoFuncs(TLBContext* pcx, MSFT_ParameterInfo paraminfo;
ptfd->funcdesc.lprgelemdescParam = - heap_alloc_zero(pFuncRec->nrargs * sizeof(ELEMDESC)); + heap_alloc_zero(pFuncRec->nrargs * (sizeof(ELEMDESC) + sizeof(PARAMDESCEX)));
ptfd->pParamDesc = TLBParDesc_Constructor(pFuncRec->nrargs);
@@ -2390,7 +2390,7 @@ MSFT_DoFuncs(TLBContext* pcx,
PARAMDESC* pParamDesc = &elemdesc->u.paramdesc;
- pParamDesc->pparamdescex = heap_alloc_zero(sizeof(PARAMDESCEX)); + pParamDesc->pparamdescex = (PARAMDESCEX*)(ptfd->funcdesc.lprgelemdescParam+pFuncRec->nrargs)+j; pParamDesc->pparamdescex->cBytes = sizeof(PARAMDESCEX);
MSFT_ReadValue(&(pParamDesc->pparamdescex->varDefaultValue), @@ -5441,10 +5441,7 @@ static void ITypeInfoImpl_Destroy(ITypeInfoImpl *This) { ELEMDESC *elemdesc = &pFInfo->funcdesc.lprgelemdescParam[j]; if (elemdesc->u.paramdesc.wParamFlags & PARAMFLAG_FHASDEFAULT) - { VariantClear(&elemdesc->u.paramdesc.pparamdescex->varDefaultValue); - heap_free(elemdesc->u.paramdesc.pparamdescex); - } TLB_FreeCustData(&pFInfo->pParamDesc[j].custdata_list); } heap_free(pFInfo->funcdesc.lprgelemdescParam);