Author: tfaber Date: Sat Jun 20 17:52:28 2015 New Revision: 68212
URL: http://svn.reactos.org/svn/reactos?rev=68212&view=rev Log: [SHELL32] - Also make My Computer a singleton, as shown by the CMyComputer test. With r68210 and this commit, SHFileOperation on a large number of files is approximately 3 times as fast. CORE-9839 #resolve
Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.h trunk/reactos/dll/win32/shell32/shell32.cpp
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] Sat Jun 20 17:52:28 2015 @@ -161,6 +161,7 @@ CDrivesFolder::~CDrivesFolder() { TRACE ("-- destroying IShellFolder(%p)\n", this); + ASSERT(_CreatorClass::IsTerminated()); SHFree(pidlRoot); }
Modified: trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/C... ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CDrivesFolder.h [iso-8859-1] Sat Jun 20 17:52:28 2015 @@ -69,7 +69,7 @@ virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
DECLARE_REGISTRY_RESOURCEID(IDR_MYCOMPUTER) - DECLARE_NOT_AGGREGATABLE(CDrivesFolder) + DECLARE_SINGLETON_NOT_AGGREGATABLE(CDrivesFolder)
DECLARE_PROTECT_FINAL_CONSTRUCT()
Modified: trunk/reactos/dll/win32/shell32/shell32.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shell32.c... ============================================================================== --- trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shell32.cpp [iso-8859-1] Sat Jun 20 17:52:28 2015 @@ -151,6 +151,7 @@ public: void Term() { + CComCreatorSingleton< ATL::CComObject< CDrivesFolder > >::Term(); CComCreatorSingleton< ATL::CComObject< CDesktopFolder > >::Term(); CComModule::Term(); }