23 Sep
2021
23 Sep
'21
12:39 p.m.
Hi Robert, Sorry for the delay. On 9/16/21 10:25 PM, Robert Wilhelm wrote:
if((ctx->func->type == FUNC_FUNCTION || ctx->func->type == FUNC_PROPGET) - && !wcsicmp(name, ctx->func->name)) { + && !wcsicmp(name, ctx->func->name) + /* you must not use return value for recursive call */ + && ((invoke_type != VBDISP_CALLGET) || ((invoke_type == VBDISP_CALLGET) && ( V_VT(&ctx->ret_val) == VT_DISPATCH)))) {
I experimented a bit with this, see attached test. It seems that we should use the current function even if ret_val is modified and not an object. Thanks, Jacek