ole32: Remove now unused helper.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-08-13 08:29:31 +01:00 committed by Alexandre Julliard
parent 42f6be1133
commit 0efea8489d
2 changed files with 24 additions and 34 deletions

View File

@ -187,7 +187,6 @@ struct oletls
/* Global Interface Table Functions */ /* Global Interface Table Functions */
extern IGlobalInterfaceTable *get_std_git(void) DECLSPEC_HIDDEN;
extern void release_std_git(void) DECLSPEC_HIDDEN; extern void release_std_git(void) DECLSPEC_HIDDEN;
extern HRESULT StdGlobalInterfaceTable_GetFactory(LPVOID *ppv) DECLSPEC_HIDDEN; extern HRESULT StdGlobalInterfaceTable_GetFactory(LPVOID *ppv) DECLSPEC_HIDDEN;

View File

@ -290,47 +290,38 @@ StdGlobalInterfaceTable_GetInterfaceFromGlobal(
return S_OK; 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 = static const IGlobalInterfaceTableVtbl StdGlobalInterfaceTableImpl_Vtbl =
{ {
StdGlobalInterfaceTable_QueryInterface, StdGlobalInterfaceTable_QueryInterface,
StdGlobalInterfaceTable_AddRef, StdGlobalInterfaceTable_AddRef,
StdGlobalInterfaceTable_Release, StdGlobalInterfaceTable_Release,
StdGlobalInterfaceTable_RegisterInterfaceInGlobal, StdGlobalInterfaceTable_RegisterInterfaceInGlobal,
StdGlobalInterfaceTable_RevokeInterfaceFromGlobal, StdGlobalInterfaceTable_RevokeInterfaceFromGlobal,
StdGlobalInterfaceTable_GetInterfaceFromGlobal StdGlobalInterfaceTable_GetInterfaceFromGlobal
}; };
IGlobalInterfaceTable* get_std_git(void) HRESULT WINAPI GlobalInterfaceTable_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **obj)
{ {
if (!std_git) StdGlobalInterfaceTableImpl *git;
{
StdGlobalInterfaceTableImpl* newGIT;
newGIT = HeapAlloc(GetProcessHeap(), 0, sizeof(StdGlobalInterfaceTableImpl)); if (!std_git)
if (!newGIT) return NULL;
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))
{ {
HeapFree(GetProcessHeap(), 0, newGIT); git = heap_alloc(sizeof(*git));
} if (!git) return E_OUTOFMEMORY;
else
TRACE("Created the GIT at %p\n", newGIT);
}
return std_git; 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);
}
return IGlobalInterfaceTable_QueryInterface(std_git, riid, obj);
} }
void release_std_git(void) void release_std_git(void)