From c146d77c046f7eb9414d63131ca2dbe9977d5ee2 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 21 Jun 2015 05:21:30 +0000 Subject: [PATCH] [SHELL32] - Finally give up on that assert. It's not easily fixable CORE-9839 or CORE-9844 or CORE-9845 or whatever svn path=/trunk/; revision=68218 --- .../dll/win32/shell32/folders/CDesktopFolder.cpp | 1 - .../dll/win32/shell32/folders/CDrivesFolder.cpp | 1 - reactos/include/reactos/shellutils.h | 16 +--------------- 3 files changed, 1 insertion(+), 17 deletions(-) diff --git a/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp b/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp index 9ba5121b0dd..08ae19d0618 100644 --- a/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp +++ b/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp @@ -287,7 +287,6 @@ CDesktopFolder::CDesktopFolder() : CDesktopFolder::~CDesktopFolder() { - ASSERT(_CreatorClass::IsTerminated()); } HRESULT WINAPI CDesktopFolder::FinalConstruct() diff --git a/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp b/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp index 963f3dec110..0a5fa1476ed 100644 --- a/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp +++ b/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp @@ -161,7 +161,6 @@ CDrivesFolder::CDrivesFolder() CDrivesFolder::~CDrivesFolder() { TRACE ("-- destroying IShellFolder(%p)\n", this); - ASSERT(_CreatorClass::IsTerminated()); SHFree(pidlRoot); } diff --git a/reactos/include/reactos/shellutils.h b/reactos/include/reactos/shellutils.h index 7291a76d56f..84df7c17517 100644 --- a/reactos/include/reactos/shellutils.h +++ b/reactos/include/reactos/shellutils.h @@ -47,7 +47,6 @@ class CComCreatorCentralInstance { private: static IUnknown *s_pInstance; - static bool s_IsTerminated; public: static HRESULT WINAPI CreateInstance(void *pv, REFIID riid, LPVOID *ppv) @@ -59,26 +58,17 @@ public: { PVOID pObj; HRESULT hr; - s_IsTerminated = true; hr = ATL::CComCreator< T >::CreateInstance(NULL, IID_IUnknown, &pObj); if (FAILED(hr)) - { - s_IsTerminated = false; return hr; - } if (InterlockedCompareExchangePointer((PVOID *)&s_pInstance, pObj, NULL)) static_cast(pObj)->Release(); - s_IsTerminated = false; } return s_pInstance->QueryInterface(riid, ppv); } static void Term() { ULONG ref; -#ifdef ASSERT - ASSERT(!s_IsTerminated); -#endif - s_IsTerminated = true; if (s_pInstance) { ref = s_pInstance->Release(); @@ -88,16 +78,12 @@ public: s_pInstance = NULL; } } - static bool IsTerminated() { return s_IsTerminated; } }; template IUnknown *CComCreatorCentralInstance::s_pInstance = NULL; -template -bool CComCreatorCentralInstance::s_IsTerminated = false; - -#define DECLARE_CENTRAL_INSTANCE_NOT_AGGREGATABLE(x) \ +#define DECLARE_CENTRAL_INSTANCE_NOT_AGGREGATABLE(x) \ public: \ typedef CComCreatorCentralInstance< ATL::CComObject > _CreatorClass; #endif