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

Alexandre Julliard julliard at winehq.org
Thu Feb 8 15:33:08 CST 2018


Module: wine
Branch: master
Commit: 728080667267a636d68cdf8ff8d1731a6e27aa0f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=728080667267a636d68cdf8ff8d1731a6e27aa0f

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Feb  8 20:53:21 2018 +0100

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

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/dispex.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
index ea20baf..360d915 100644
--- a/dlls/mshtml/dispex.c
+++ b/dlls/mshtml/dispex.c
@@ -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)




More information about the wine-cvs mailing list