Commit 471475ec authored by Andrew Eikum's avatar Andrew Eikum Committed by Alexandre Julliard

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.
parent 7fcea36a
...@@ -2293,7 +2293,7 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetFuncAndParamNames( ...@@ -2293,7 +2293,7 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetFuncAndParamNames(
if (*((INT*)namedata) == -1) if (*((INT*)namedata) == -1)
*((INT *)namedata) = This->typelib->typelib_typeinfo_offsets[This->typeinfo->typekind >> 16]; *((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++) { for (i = 1; i < cNames; i++) {
offset = ctl2_alloc_name(This->typelib, rgszNames[i]); offset = ctl2_alloc_name(This->typelib, rgszNames[i]);
...@@ -3327,7 +3327,7 @@ static HRESULT WINAPI ITypeInfo2_fnGetDocumentation( ...@@ -3327,7 +3327,7 @@ static HRESULT WINAPI ITypeInfo2_fnGetDocumentation(
if (iter->indice == memid) { if (iter->indice == memid) {
if (iter->type == CyclicListFunc) { if (iter->type == CyclicListFunc) {
const int *typedata = iter->u.data; 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; nameoffset = iter->name;
/* FIXME implement this once SetFuncDocString is implemented */ /* FIXME implement this once SetFuncDocString is implemented */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment