[PATCH 3/6] ole32: Remove now unused helper.

Nikolay Sivov nsivov at codeweavers.com
Wed Aug 12 23:56:28 CDT 2020


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/ole32/compobj_private.h |  1 -
 dlls/ole32/git.c             | 55 +++++++++++++++---------------------
 2 files changed, 23 insertions(+), 33 deletions(-)

diff --git a/dlls/ole32/compobj_private.h b/dlls/ole32/compobj_private.h
index 1b7aa5640ce..b64dfbf4f4a 100644
--- a/dlls/ole32/compobj_private.h
+++ b/dlls/ole32/compobj_private.h
@@ -187,7 +187,6 @@ struct oletls
 
 
 /* Global Interface Table Functions */
-extern IGlobalInterfaceTable *get_std_git(void) DECLSPEC_HIDDEN;
 extern void release_std_git(void) DECLSPEC_HIDDEN;
 extern HRESULT StdGlobalInterfaceTable_GetFactory(LPVOID *ppv) DECLSPEC_HIDDEN;
 
diff --git a/dlls/ole32/git.c b/dlls/ole32/git.c
index e761c99b77c..fe6b5e58122 100644
--- a/dlls/ole32/git.c
+++ b/dlls/ole32/git.c
@@ -290,47 +290,38 @@ StdGlobalInterfaceTable_GetInterfaceFromGlobal(
   return S_OK;
 }
 
-HRESULT WINAPI GlobalInterfaceTable_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **obj)
-{
-    IGlobalInterfaceTable *git = get_std_git();
-    HRESULT hr = IGlobalInterfaceTable_QueryInterface(git, riid, obj);
-    IGlobalInterfaceTable_Release(git);
-    return hr;
-}
-
-/* Virtual function table */
 static const IGlobalInterfaceTableVtbl StdGlobalInterfaceTableImpl_Vtbl =
 {
-  StdGlobalInterfaceTable_QueryInterface,
-  StdGlobalInterfaceTable_AddRef,
-  StdGlobalInterfaceTable_Release,
-  StdGlobalInterfaceTable_RegisterInterfaceInGlobal,
-  StdGlobalInterfaceTable_RevokeInterfaceFromGlobal,
-  StdGlobalInterfaceTable_GetInterfaceFromGlobal
+    StdGlobalInterfaceTable_QueryInterface,
+    StdGlobalInterfaceTable_AddRef,
+    StdGlobalInterfaceTable_Release,
+    StdGlobalInterfaceTable_RegisterInterfaceInGlobal,
+    StdGlobalInterfaceTable_RevokeInterfaceFromGlobal,
+    StdGlobalInterfaceTable_GetInterfaceFromGlobal
 };
 
-IGlobalInterfaceTable* get_std_git(void)
+HRESULT WINAPI GlobalInterfaceTable_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **obj)
 {
-  if (!std_git)
-  {
-    StdGlobalInterfaceTableImpl* newGIT;
-
-    newGIT = HeapAlloc(GetProcessHeap(), 0, sizeof(StdGlobalInterfaceTableImpl));
-    if (!newGIT) return NULL;
+    StdGlobalInterfaceTableImpl *git;
 
-    newGIT->IGlobalInterfaceTable_iface.lpVtbl = &StdGlobalInterfaceTableImpl_Vtbl;
-    list_init(&newGIT->list);
-    newGIT->nextCookie = 0xf100; /* that's where windows starts, so that's where we start */
-
-    if (InterlockedCompareExchangePointer((void**)&std_git, &newGIT->IGlobalInterfaceTable_iface, NULL))
+    if (!std_git)
     {
-      HeapFree(GetProcessHeap(), 0, newGIT);
+        git = heap_alloc(sizeof(*git));
+        if (!git) return E_OUTOFMEMORY;
+
+        git->IGlobalInterfaceTable_iface.lpVtbl = &StdGlobalInterfaceTableImpl_Vtbl;
+        list_init(&git->list);
+        git->nextCookie = 0xf100; /* that's where windows starts, so that's where we start */
+
+        if (InterlockedCompareExchangePointer((void **)&std_git, &git->IGlobalInterfaceTable_iface, NULL))
+        {
+            heap_free(git);
+        }
+        else
+            TRACE("Created the GIT %p\n", git);
     }
-    else
-      TRACE("Created the GIT at %p\n", newGIT);
-  }
 
-  return std_git;
+    return IGlobalInterfaceTable_QueryInterface(std_git, riid, obj);
 }
 
 void release_std_git(void)
-- 
2.28.0




More information about the wine-devel mailing list