 Issue 5113230347206656:
  Issue #1356 - Improve detection of the issuer of the request  (Closed)
    
  
    Issue 5113230347206656:
  Issue #1356 - Improve detection of the issuer of the request  (Closed) 
  | Left: | ||
| Right: | 
| LEFT | RIGHT | 
|---|---|
| 1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" | 
| 2 | 2 | 
| 3 #include "PluginClass.h" | 3 #include "PluginClass.h" | 
| 4 #include "PluginSettings.h" | 4 #include "PluginSettings.h" | 
| 5 #include "PluginSystem.h" | 5 #include "PluginSystem.h" | 
| 6 #ifdef SUPPORT_FILTER | 6 #ifdef SUPPORT_FILTER | 
| 7 #include "PluginFilter.h" | 7 #include "PluginFilter.h" | 
| 8 #endif | 8 #endif | 
| 9 #include "PluginMimeFilterClient.h" | 9 #include "PluginMimeFilterClient.h" | 
| 10 #include "PluginClient.h" | 10 #include "PluginClient.h" | 
| (...skipping 1118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1129 std::map<DWORD,CPluginClass*>::const_iterator it = s_threadInstances.find(dw ThreadId); | 1129 std::map<DWORD,CPluginClass*>::const_iterator it = s_threadInstances.find(dw ThreadId); | 
| 1130 if (it != s_threadInstances.end()) | 1130 if (it != s_threadInstances.end()) | 
| 1131 { | 1131 { | 
| 1132 tab = it->second->m_tab; | 1132 tab = it->second->m_tab; | 
| 1133 } | 1133 } | 
| 1134 } | 1134 } | 
| 1135 s_criticalSectionLocal.Unlock(); | 1135 s_criticalSectionLocal.Unlock(); | 
| 1136 | 1136 | 
| 1137 return tab; | 1137 return tab; | 
| 1138 } | 1138 } | 
| 1139 | 1139 | 
| 
Eric
2014/10/08 17:37:54
I'm mildly concerned that this version of GetTab i
 
sergei
2014/10/09 13:46:22
I think it should be fast enough with linear searc
 | |
| 1140 CPluginTab* CPluginClass::GetTab(const std::wstring& url) | 1140 CPluginTab* CPluginClass::GetTab(const std::wstring& url) | 
| 1141 { | 1141 { | 
| 1142 CPluginTab* tab = NULL; | 1142 CPluginTab* tab = NULL; | 
| 1143 | 1143 | 
| 1144 s_criticalSectionLocal.Lock(); | 1144 s_criticalSectionLocal.Lock(); | 
| 1145 { | 1145 { | 
| 1146 std::map<DWORD,CPluginClass*>::const_iterator it; | 1146 std::map<DWORD,CPluginClass*>::const_iterator it; | 
| 1147 for (it = s_threadInstances.begin(); it != s_threadInstances.end(); it++) | 1147 for (it = s_threadInstances.begin(); it != s_threadInstances.end(); ++it) | 
| 
Eric
2014/10/08 17:37:54
We can use the range-for syntax here. It's support
 | |
| 1148 { | 1148 { | 
| 1149 if (it->second->GetBrowserUrl() == url.c_str()) | 1149 if (it->second->GetBrowserUrl() == url.c_str()) | 
| 1150 { | 1150 { | 
| 1151 s_criticalSectionLocal.Unlock(); | |
| 1151 return it->second->m_tab; | 1152 return it->second->m_tab; | 
| 
Eric
2014/10/08 17:37:54
If we were using a sentry object to control the mu
 
sergei
2014/10/09 13:46:22
+1 for scoped lock
I also don't like return if it'
 | |
| 1152 } | 1153 } | 
| 1153 } | 1154 } | 
| 1154 } | 1155 } | 
| 1155 s_criticalSectionLocal.Unlock(); | 1156 s_criticalSectionLocal.Unlock(); | 
| 1156 | 1157 | 
| 1157 return tab; | 1158 return tab; | 
| 1158 } | 1159 } | 
| 1159 | 1160 | 
| 1160 | 1161 | 
| 1161 STDMETHODIMP CPluginClass::QueryStatus(const GUID* pguidCmdGroup, ULONG cCmds, O LECMD prgCmds[], OLECMDTEXT* pCmdText) | 1162 STDMETHODIMP CPluginClass::QueryStatus(const GUID* pguidCmdGroup, ULONG cCmds, O LECMD prgCmds[], OLECMDTEXT* pCmdText) | 
| (...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2021 } | 2022 } | 
| 2022 } | 2023 } | 
| 2023 } | 2024 } | 
| 2024 | 2025 | 
| 2025 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); | 2026 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); | 
| 2026 } | 2027 } | 
| 2027 | 2028 | 
| 2028 return hTabWnd; | 2029 return hTabWnd; | 
| 2029 | 2030 | 
| 2030 } | 2031 } | 
| LEFT | RIGHT |