Author: tfaber Date: Sun Jun 21 05:21:30 2015 New Revision: 68218
URL: http://svn.reactos.org/svn/reactos?rev=68218&view=rev Log: [SHELL32] - Finally give up on that assert. It's not easily fixable CORE-9839 or CORE-9844 or CORE-9845 or whatever
Modified: trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp trunk/reactos/include/reactos/shellutils.h
Modified: trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/C... ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp [iso-8859-1] Sun Jun 21 05:21:30 2015 @@ -287,7 +287,6 @@
CDesktopFolder::~CDesktopFolder() { - ASSERT(_CreatorClass::IsTerminated()); }
HRESULT WINAPI CDesktopFolder::FinalConstruct()
Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/C... ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp [iso-8859-1] Sun Jun 21 05:21:30 2015 @@ -161,7 +161,6 @@ CDrivesFolder::~CDrivesFolder() { TRACE ("-- destroying IShellFolder(%p)\n", this); - ASSERT(_CreatorClass::IsTerminated()); SHFree(pidlRoot); }
Modified: trunk/reactos/include/reactos/shellutils.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/shellutils.... ============================================================================== --- trunk/reactos/include/reactos/shellutils.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/shellutils.h [iso-8859-1] Sun Jun 21 05:21:30 2015 @@ -47,7 +47,6 @@ { private: static IUnknown *s_pInstance; - static bool s_IsTerminated;
public: static HRESULT WINAPI CreateInstance(void *pv, REFIID riid, LPVOID *ppv) @@ -59,26 +58,17 @@ { 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<IUnknown *>(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 @@ s_pInstance = NULL; } } - static bool IsTerminated() { return s_IsTerminated; } };
template <typename T> IUnknown *CComCreatorCentralInstance<T>::s_pInstance = NULL;
-template <typename T> -bool CComCreatorCentralInstance<T>::s_IsTerminated = false; - -#define DECLARE_CENTRAL_INSTANCE_NOT_AGGREGATABLE(x) \ +#define DECLARE_CENTRAL_INSTANCE_NOT_AGGREGATABLE(x) \ public: \ typedef CComCreatorCentralInstance< ATL::CComObject<x> > _CreatorClass; #endif