mshtml: Store compat mode in dispex_data_t and use it in dispex_compat_mode when possible.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2018-02-08 20:53:21 +01:00 committed by Alexandre Julliard
parent 87f823ad91
commit 7280806672

View file

@ -64,6 +64,7 @@ typedef struct {
struct dispex_data_t {
dispex_static_data_t *desc;
compat_mode_t compat_mode;
DWORD func_cnt;
DWORD func_size;
@ -411,6 +412,7 @@ static dispex_data_t *preprocess_dispex_data(dispex_static_data_t *desc, compat_
return NULL;
}
data->desc = desc;
data->compat_mode = compat_mode;
data->func_cnt = 0;
data->func_disp_cnt = 0;
data->func_size = 16;
@ -1364,7 +1366,9 @@ HRESULT remove_attribute(DispatchEx *This, DISPID id, VARIANT_BOOL *success)
compat_mode_t dispex_compat_mode(DispatchEx *dispex)
{
return dispex->info->desc->vtbl->get_compat_mode(dispex);
return dispex->info != dispex->info->desc->delayed_init_info
? dispex->info->compat_mode
: dispex->info->desc->vtbl->get_compat_mode(dispex);
}
static dispex_data_t *ensure_dispex_info(dispex_static_data_t *desc, compat_mode_t compat_mode)