Index: src/plugin/PluginClass.cpp |
=================================================================== |
--- a/src/plugin/PluginClass.cpp |
+++ b/src/plugin/PluginClass.cpp |
@@ -36,7 +36,7 @@ |
ATOM CPluginClass::s_atomPaneClass = NULL; |
HINSTANCE CPluginClass::s_hUxtheme = NULL; |
-CSimpleArray<CPluginClass*> CPluginClass::s_instances; |
+std::set<CPluginClass*> CPluginClass::s_instances; |
std::map<DWORD, CPluginClass*> CPluginClass::s_threadInstances; |
CComAutoCriticalSection CPluginClass::s_criticalSectionLocal; |
@@ -285,7 +285,7 @@ |
// Always register on startup, then check if we need to unregister in a separate thread |
s_mimeFilter = CPluginClientFactory::GetMimeFilterClientInstance(); |
s_asyncWebBrowser2 = unknownSite; |
- s_instances.Add(this); |
+ s_instances.insert(this); |
} |
s_criticalSectionLocal.Unlock(); |
@@ -389,14 +389,14 @@ |
s_criticalSectionLocal.Lock(); |
{ |
- s_instances.Remove(this); |
+ s_instances.erase(this); |
std::map<DWORD,CPluginClass*>::iterator it = s_threadInstances.find(::GetCurrentThreadId()); |
if (it != s_threadInstances.end()) |
{ |
s_threadInstances.erase(it); |
} |
- if (s_instances.GetSize() == 0) |
+ if (s_instances.empty()) |
{ |
CPluginClientFactory::ReleaseMimeFilterClientInstance(); |
} |
@@ -917,11 +917,10 @@ |
s_criticalSectionLocal.Lock(); |
{ |
- for (int i = 0; i < s_instances.GetSize(); i++) |
+ for (auto instance : s_instances) |
{ |
- if (s_instances[i]->m_hTabWnd == hTabWnd2) |
+ if (instance->m_hTabWnd == hTabWnd2) |
{ |
- |
bExistingTab = true; |
break; |
} |
@@ -1086,22 +1085,22 @@ |
CPluginClass* CPluginClass::FindInstance(HWND hStatusBarWnd) |
{ |
- CPluginClass* instance = NULL; |
+ CPluginClass* result = nullptr; |
s_criticalSectionLocal.Lock(); |
{ |
- for (int i = 0; i < s_instances.GetSize(); i++) |
+ for (auto instance : s_instances) |
{ |
- if (s_instances[i]->m_hStatusBarWnd == hStatusBarWnd) |
+ if (instance->m_hStatusBarWnd == hStatusBarWnd) |
{ |
- instance = s_instances[i]; |
+ result = instance; |
break; |
} |
} |
} |
s_criticalSectionLocal.Unlock(); |
- return instance; |
+ return result; |
} |
CPluginTab* CPluginClass::GetTab() |
@@ -1973,9 +1972,9 @@ |
s_criticalSectionLocal.Lock(); |
{ |
- for (int i = 0; i < s_instances.GetSize(); i++) |
+ for (auto instance : s_instances) |
{ |
- if (s_instances[i]->m_hTabWnd == hTabWnd2) |
+ if (instance->m_hTabWnd == hTabWnd2) |
{ |
bExistingTab = true; |
break; |