Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: src/plugin/PluginClass.cpp

Issue 5113230347206656: Issue #1356 - Improve detection of the issuer of the request (Closed)
Left Patch Set: Created Oct. 7, 2014, 9:51 p.m.
Right Patch Set: Fix the deadlock Created Oct. 7, 2014, 11:22 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « src/plugin/PluginClass.h ('k') | src/plugin/PluginWbPassThrough.cpp » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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
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
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 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld