Jacek Caban : vbscript: Get rid of no longer needed ITypeInfo in BuiltinDisp.

Alexandre Julliard julliard at winehq.org
Thu Oct 17 16:01:26 CDT 2019


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Oct 17 22:46:59 2019 +0200

vbscript: Get rid of no longer needed ITypeInfo in BuiltinDisp.

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

---

 dlls/vbscript/global.c        | 17 +++---------
 dlls/vbscript/vbscript.h      | 13 ---------
 dlls/vbscript/vbscript_main.c | 61 -------------------------------------------
 3 files changed, 3 insertions(+), 88 deletions(-)

diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c
index 45787f52af..50f54f38a6 100644
--- a/dlls/vbscript/global.c
+++ b/dlls/vbscript/global.c
@@ -268,8 +268,7 @@ static const IDispatchVtbl BuiltinDispVtbl = {
     Builtin_Invoke
 };
 
-static HRESULT create_builtin_dispatch(script_ctx_t *ctx, const builtin_prop_t *members, size_t member_cnt,
-                                       ITypeInfo *typeinfo, BuiltinDisp **ret)
+static HRESULT create_builtin_dispatch(script_ctx_t *ctx, const builtin_prop_t *members, size_t member_cnt, BuiltinDisp **ret)
 {
     BuiltinDisp *disp;
 
@@ -281,7 +280,6 @@ static HRESULT create_builtin_dispatch(script_ctx_t *ctx, const builtin_prop_t *
     disp->members = members;
     disp->member_cnt = member_cnt;
     disp->ctx = ctx;
-    disp->typeinfo = typeinfo;
 
     *ret = disp;
     return S_OK;
@@ -2858,14 +2856,9 @@ void detach_global_objects(script_ctx_t *ctx)
 
 HRESULT init_global(script_ctx_t *ctx)
 {
-    ITypeInfo *typeinfo;
     HRESULT hres;
 
-    hres = get_typeinfo(GlobalObj_tid, &typeinfo);
-    if(FAILED(hres))
-        return hres;
-
-    hres = create_builtin_dispatch(ctx, global_props, ARRAY_SIZE(global_props), typeinfo, &ctx->global_obj);
+    hres = create_builtin_dispatch(ctx, global_props, ARRAY_SIZE(global_props), &ctx->global_obj);
     if(FAILED(hres))
         return hres;
 
@@ -2873,9 +2866,5 @@ HRESULT init_global(script_ctx_t *ctx)
     if(FAILED(hres))
         return hres;
 
-    hres = get_typeinfo(ErrObj_tid, &typeinfo);
-    if(FAILED(hres))
-        return hres;
-
-    return create_builtin_dispatch(ctx, err_props, ARRAY_SIZE(err_props), typeinfo, &ctx->err_obj);
+    return create_builtin_dispatch(ctx, err_props, ARRAY_SIZE(err_props), &ctx->err_obj);
 }
diff --git a/dlls/vbscript/vbscript.h b/dlls/vbscript/vbscript.h
index c17084d4ea..71f42aaff9 100644
--- a/dlls/vbscript/vbscript.h
+++ b/dlls/vbscript/vbscript.h
@@ -141,7 +141,6 @@ typedef struct {
     size_t member_cnt;
     const builtin_prop_t *members;
     script_ctx_t *ctx;
-    ITypeInfo *typeinfo;
 } BuiltinDisp;
 
 HRESULT create_vbdisp(const class_desc_t*,vbdisp_t**) DECLSPEC_HIDDEN;
@@ -358,18 +357,6 @@ HRESULT report_script_error(script_ctx_t*) DECLSPEC_HIDDEN;
 void detach_global_objects(script_ctx_t*) DECLSPEC_HIDDEN;
 HRESULT get_builtin_id(BuiltinDisp*,const WCHAR*,DISPID*) DECLSPEC_HIDDEN;
 
-#define TID_LIST \
-    XDIID(ErrObj) \
-    XDIID(GlobalObj)
-
-typedef enum {
-#define XDIID(iface) iface ## _tid,
-TID_LIST
-#undef XDIID
-    LAST_tid
-} tid_t;
-
-HRESULT get_typeinfo(tid_t,ITypeInfo**) DECLSPEC_HIDDEN;
 void release_regexp_typelib(void) DECLSPEC_HIDDEN;
 
 static inline BOOL is_int32(double d)
diff --git a/dlls/vbscript/vbscript_main.c b/dlls/vbscript/vbscript_main.c
index 3a8019a30d..6e6f386755 100644
--- a/dlls/vbscript/vbscript_main.c
+++ b/dlls/vbscript/vbscript_main.c
@@ -35,66 +35,6 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
 
 static HINSTANCE vbscript_hinstance;
 
-static ITypeLib *typelib;
-static ITypeInfo *typeinfos[LAST_tid];
-
-static REFIID tid_ids[] = {
-#define XDIID(iface) &DIID_ ## iface,
-TID_LIST
-#undef XDIID
-};
-
-HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo)
-{
-    HRESULT hres;
-
-    if (!typelib) {
-        ITypeLib *tl;
-
-        static const WCHAR vbscript_dll1W[] = {'v','b','s','c','r','i','p','t','.','d','l','l','\\','1',0};
-
-        hres = LoadTypeLib(vbscript_dll1W, &tl);
-        if(FAILED(hres)) {
-            ERR("LoadRegTypeLib failed: %08x\n", hres);
-            return hres;
-        }
-
-        if(InterlockedCompareExchangePointer((void**)&typelib, tl, NULL))
-            ITypeLib_Release(tl);
-    }
-
-    if(!typeinfos[tid]) {
-        ITypeInfo *ti;
-
-        hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti);
-        if(FAILED(hres)) {
-            ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres);
-            return hres;
-        }
-
-        if(InterlockedCompareExchangePointer((void**)(typeinfos+tid), ti, NULL))
-            ITypeInfo_Release(ti);
-    }
-
-    *typeinfo = typeinfos[tid];
-    return S_OK;
-}
-
-static void release_typelib(void)
-{
-    unsigned i;
-
-    if(!typelib)
-        return;
-
-    for(i = 0; i < ARRAY_SIZE(typeinfos); i++) {
-        if(typeinfos[i])
-            ITypeInfo_Release(typeinfos[i]);
-    }
-
-    ITypeLib_Release(typelib);
-}
-
 BSTR get_vbscript_string(int id)
 {
     WCHAR buf[512];
@@ -316,7 +256,6 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
         break;
     case DLL_PROCESS_DETACH:
         if (lpv) break;
-        release_typelib();
         release_regexp_typelib();
     }
 




More information about the wine-cvs mailing list