[PATCH v6 4/8] jscript: Lookup and ref the named item's dispatch first, during interpretion.

Gabriel Ivăncescu gabrielopcode at gmail.com
Mon Mar 9 10:57:47 CDT 2020


Hi Jacek,

On 09/03/2020 16:05, Jacek Caban wrote:
> Hi Gabriel,
> 
> On 07.03.2020 14:40, Gabriel Ivăncescu wrote:
>> diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c
>> index e986de6..a0c8f38 100644
>> --- a/dlls/jscript/dispex.c
>> +++ b/dlls/jscript/dispex.c
>> @@ -1527,6 +1527,7 @@ static HRESULT WINAPI 
>> DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc
>>       }
>>       enter_script(This->ctx, &ei);
>> +    ei.script_obj = This;
> 
> 
> This doesn't look right. What are you trying to handle here? Note that 
> IDispatchEx is used by regular JavaScript objects and using such objects 
> and script_obj doesn't seem right. Even if the object is a script 
> dispatch, I'm not sure this is right. In fact, I'm not yet convinced 
> that we need script_obj in ei at all.
> 
> 
> Thanks,
> 
> Jacek
> 

Oh, I was just concerned about 'eval' being called somehow from 
IDispatch directly without going through exec_source, because the eval 
code does seem to assume that 'frame' (i.e. ctx->call_ctx) can be NULL, 
which would mean we can't access the bytecode's named item (this check 
was there before my patches).

I can drop it, of course, if it's not needed. Perhaps that NULL check in 
eval is redundant, then?

Thanks,
Gabriel



More information about the wine-devel mailing list