Module: wine Branch: master Commit: 471475ec28885c8cc160b41a575466ae205676b7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=471475ec28885c8cc160b41a57...
Author: Andrew Eikum aeikum@codeweavers.com Date: Fri Aug 20 14:59:09 2010 -0500
oleaut32: Properly mask size from funcdesc typedata.
The high word of a funcdesc's typedata[0] is used for other data and needs to be masked out.
---
dlls/oleaut32/typelib2.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/typelib2.c b/dlls/oleaut32/typelib2.c index ef43cab..84c51a2 100644 --- a/dlls/oleaut32/typelib2.c +++ b/dlls/oleaut32/typelib2.c @@ -2293,7 +2293,7 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetFuncAndParamNames( if (*((INT*)namedata) == -1) *((INT *)namedata) = This->typelib->typelib_typeinfo_offsets[This->typeinfo->typekind >> 16];
- len = iter->u.data[0]/4 - iter->u.data[5]*3; + len = (iter->u.data[0]&0xFFFF)/4 - iter->u.data[5]*3;
for (i = 1; i < cNames; i++) { offset = ctl2_alloc_name(This->typelib, rgszNames[i]); @@ -3327,7 +3327,7 @@ static HRESULT WINAPI ITypeInfo2_fnGetDocumentation( if (iter->indice == memid) { if (iter->type == CyclicListFunc) { const int *typedata = iter->u.data; - int size = typedata[0] - typedata[5]*(typedata[4]&0x1000?16:12); + int size = (typedata[0]&0xFFFF) - typedata[5]*(typedata[4]&0x1000?16:12);
nameoffset = iter->name; /* FIXME implement this once SetFuncDocString is implemented */