Changeset 209937 in webkit
- Timestamp:
- Dec 16, 2016 2:05:54 PM (7 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r209931 r209937 1 2016-12-16 Jer Noble <jer.noble@apple.com> 2 3 Small refactor: Use HashCountedSet rather than HashMap<..., int> to store client counts in WebPlaybackSessionManager{,Proxy}. 4 https://bugs.webkit.org/show_bug.cgi?id=165807 5 6 Reviewed by Eric Carlson. 7 8 * UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h: 9 * UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm: 10 (WebKit::WebPlaybackSessionManagerProxy::addClientForContext): 11 (WebKit::WebPlaybackSessionManagerProxy::removeClientForContext): 12 * WebProcess/cocoa/WebPlaybackSessionManager.h: 13 * WebProcess/cocoa/WebPlaybackSessionManager.mm: 14 (WebKit::WebPlaybackSessionManager::addClientForContext): 15 (WebKit::WebPlaybackSessionManager::removeClientForContext): 16 1 17 2016-12-16 Wenson Hsieh <wenson_hsieh@apple.com> 2 18 -
trunk/Source/WebKit2/UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h
r206350 r209937 33 33 #include <WebCore/TimeRanges.h> 34 34 #include <WebCore/WebPlaybackSessionModel.h> 35 #include <wtf/HashCountedSet.h> 35 36 #include <wtf/HashMap.h> 36 37 #include <wtf/HashSet.h> … … 204 205 HashMap<uint64_t, ModelInterfaceTuple> m_contextMap; 205 206 uint64_t m_controlsManagerContextId { 0 }; 206 Hash Map<uint64_t, int> m_clientCounts;207 HashCountedSet<uint64_t> m_clientCounts; 207 208 }; 208 209 -
trunk/Source/WebKit2/UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm
r206350 r209937 282 282 void WebPlaybackSessionManagerProxy::addClientForContext(uint64_t contextId) 283 283 { 284 auto addResult = m_clientCounts.add(contextId, 1); 285 if (!addResult.isNewEntry) 286 addResult.iterator->value++; 284 m_clientCounts.add(contextId); 287 285 } 288 286 289 287 void WebPlaybackSessionManagerProxy::removeClientForContext(uint64_t contextId) 290 288 { 291 ASSERT(m_clientCounts.contains(contextId)); 292 293 int clientCount = m_clientCounts.get(contextId); 294 ASSERT(clientCount > 0); 295 clientCount--; 296 297 if (clientCount <= 0) { 298 m_clientCounts.remove(contextId); 299 300 RefPtr<WebPlaybackSessionModelContext> model; 301 RefPtr<PlatformWebPlaybackSessionInterface> interface; 302 std::tie(model, interface) = ensureModelAndInterface(contextId); 303 interface->invalidate(); 304 m_contextMap.remove(contextId); 289 if (!m_clientCounts.remove(contextId)) 305 290 return; 306 } 307 308 m_c lientCounts.set(contextId, clientCount);291 292 ensureInterface(contextId).invalidate(); 293 m_contextMap.remove(contextId); 309 294 } 310 295 -
trunk/Source/WebKit2/WebProcess/cocoa/WebPlaybackSessionManager.h
r206350 r209937 35 35 #include <WebCore/WebPlaybackSessionInterface.h> 36 36 #include <WebCore/WebPlaybackSessionModelMediaElement.h> 37 #include <wtf/HashCountedSet.h> 37 38 #include <wtf/HashMap.h> 38 39 #include <wtf/RefCounted.h> … … 152 153 HashMap<uint64_t, ModelInterfaceTuple> m_contextMap; 153 154 uint64_t m_controlsManagerContextId { 0 }; 154 Hash Map<uint64_t, int> m_clientCounts;155 HashCountedSet<uint64_t> m_clientCounts; 155 156 }; 156 157 -
trunk/Source/WebKit2/WebProcess/cocoa/WebPlaybackSessionManager.mm
r208096 r209937 214 214 void WebPlaybackSessionManager::addClientForContext(uint64_t contextId) 215 215 { 216 auto addResult = m_clientCounts.add(contextId, 1); 217 if (!addResult.isNewEntry) 218 addResult.iterator->value++; 216 m_clientCounts.add(contextId); 219 217 } 220 218 … … 222 220 { 223 221 ASSERT(m_clientCounts.contains(contextId)); 224 225 int clientCount = m_clientCounts.get(contextId); 226 ASSERT(clientCount > 0); 227 clientCount--; 228 229 if (clientCount <= 0) { 230 m_clientCounts.remove(contextId); 222 if (m_clientCounts.remove(contextId)) 231 223 removeContext(contextId); 232 return;233 }234 235 m_clientCounts.set(contextId, clientCount);236 224 } 237 225
Note: See TracChangeset
for help on using the changeset viewer.