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/…
==============================================================================
--- 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/…
==============================================================================
--- 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