[0.4.14][RPCRT4] Fix implicit in attribute handling in write_param_fs() CORE-17884

Cherry-pick wine-5.0-rc1-50-g1aaf870 by Jacek Caban.
https://source.winehq.org/git/wine.git/?a=commit;h=1aaf870039dfb8419ae060d8c67240df1366b953
(OLEAUT32_WINETEST part shall be imported later.)

Fixes regression CORE-17884 AVR Studio 4: 'FrameWork Class: Unable to add process to ROT: -2147467261'
which regressed by 0.4.12-dev-555-g b6fdb56b9a

Fix picked from 0.4.15-dev-3624-g 1723c223e3
This commit is contained in:
Joachim Henze 2022-02-07 21:36:38 +01:00
parent 9f847bd3d4
commit 44b7f9f470

View file

@ -1029,16 +1029,18 @@ static HRESULT write_param_fs(ITypeInfo *typeinfo, unsigned char *type,
BOOL is_return, unsigned short *stack_offset)
{
USHORT param_flags = desc->paramdesc.wParamFlags;
int is_in = param_flags & PARAMFLAG_FIN;
int is_out = param_flags & PARAMFLAG_FOUT;
TYPEDESC *tdesc = &desc->tdesc, *tfs_tdesc;
unsigned short server_size;
unsigned short stack_size = get_stack_size(typeinfo, tdesc);
unsigned char basetype;
unsigned short flags;
int is_in, is_out;
size_t off = 0;
HRESULT hr;
is_out = param_flags & PARAMFLAG_FOUT;
is_in = (param_flags & PARAMFLAG_FIN) || (!is_out && !is_return);
hr = get_param_info(typeinfo, tdesc, is_in, is_out, &server_size, &flags,
&basetype, &tfs_tdesc);