[PATCH v8 1/3] jscript: Lookup and ref the named item's dispatch first, during interpretion.
Gabriel Ivăncescu
gabrielopcode at gmail.com
Thu Mar 12 08:29:15 CDT 2020
Hi Jacek,
On 12/03/2020 13:02, Jacek Caban wrote:
> Hi Gabriel,
>
>
> On 11/03/2020 14:06, Gabriel Ivăncescu wrote:
>> @@ -2995,6 +3008,8 @@ HRESULT exec_source(script_ctx_t *ctx, DWORD
>> flags, bytecode_t *bytecode, functi
>> hres = create_named_item_script_obj(ctx,
>> bytecode->named_item);
>> if(FAILED(hres)) return hres;
>> }
>> + if(variable_obj == ctx->global)
>> + variable_obj = bytecode->named_item->script_obj;
>
>
> This could be a separated patch. If in this case caller can't handle
> variable_obj in many cases, maybe it shouldn't handle it at all. It
> seems to me that we could get rid of that argument. exec_source has all
> information needed to handle it by itself.
>
>
> Thanks,
>
> Jacek
>
I can split it of course, but I have some doubts when it comes to
removing it. What should we do in function.c's InterpretedFunction_call?
A possible solution I came up with would be to add a new exec_flag, say
EXEC_NEW_VARIABLE_OBJ and use it in InterpretedFunction_call -- then
create it in exec_source if the flag is set.
In rest of cases, we take the frame->variable_obj if a frame is
available, otherwise the ctx->global or named item's dispatch. All of
this in exec_source of course, then we get rid of the parameter altogether.
Does that sound like a good approach?
Thanks,
Gabriel
More information about the wine-devel
mailing list