Title: [182538] releases/WebKitGTK/webkit-2.6/Source/WebCore
Revision
182538
Author
[email protected]
Date
2015-04-08 08:54:49 -0700 (Wed, 08 Apr 2015)

Log Message

Merge r180216 - Use HashMap::add instead of get/contains + set in DOMObjectCache
https://bugs.webkit.org/show_bug.cgi?id=141558

Rubber-stamped by Žan Doberšek.

* bindings/gobject/DOMObjectCache.cpp:
(WebKit::getOrCreateDOMObjectCacheFrameObserver):
(WebKit::DOMObjectCache::put):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog (182537 => 182538)


--- releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog	2015-04-08 15:29:25 UTC (rev 182537)
+++ releases/WebKitGTK/webkit-2.6/Source/WebCore/ChangeLog	2015-04-08 15:54:49 UTC (rev 182538)
@@ -1,3 +1,14 @@
+2015-02-17  Carlos Garcia Campos  <[email protected]>
+
+        Use HashMap::add instead of get/contains + set in DOMObjectCache
+        https://bugs.webkit.org/show_bug.cgi?id=141558
+
+        Rubber-stamped by Žan Doberšek.
+
+        * bindings/gobject/DOMObjectCache.cpp:
+        (WebKit::getOrCreateDOMObjectCacheFrameObserver):
+        (WebKit::DOMObjectCache::put):
+
 2015-03-26  Zalan Bujtas  <[email protected]>
 
         Inline continuation code should not take anonymous containing wrapper granted.

Modified: releases/WebKitGTK/webkit-2.6/Source/WebCore/bindings/gobject/DOMObjectCache.cpp (182537 => 182538)


--- releases/WebKitGTK/webkit-2.6/Source/WebCore/bindings/gobject/DOMObjectCache.cpp	2015-04-08 15:29:25 UTC (rev 182537)
+++ releases/WebKitGTK/webkit-2.6/Source/WebCore/bindings/gobject/DOMObjectCache.cpp	2015-04-08 15:54:49 UTC (rev 182538)
@@ -74,14 +74,10 @@
 
 static DOMObjectCacheFrameObserver& getOrCreateDOMObjectCacheFrameObserver(WebCore::Frame& frame)
 {
-    auto observerPtr = domObjectCacheFrameObservers().get(&frame);
-    if (observerPtr)
-        return *observerPtr;
-
-    std::unique_ptr<DOMObjectCacheFrameObserver> observer = std::make_unique<DOMObjectCacheFrameObserver>(frame);
-    observerPtr = observer.get();
-    domObjectCacheFrameObservers().set(&frame, WTF::move(observer));
-    return *observerPtr;
+    DOMObjectCacheFrameObserverMap::AddResult result = domObjectCacheFrameObservers().add(&frame, nullptr);
+    if (result.isNewEntry)
+        result.iterator->value = std::make_unique<DOMObjectCacheFrameObserver>(frame);
+    return *result.iterator->value;
 }
 
 class DOMObjectCacheFrameObserver final: public WebCore::FrameDestructionObserver {
@@ -200,22 +196,20 @@
 
 void DOMObjectCache::put(void* objectHandle, void* wrapper)
 {
-    if (domObjects().contains(objectHandle))
-        return;
-    domObjects().set(objectHandle, std::make_unique<DOMObjectCacheData>(G_OBJECT(wrapper)));
+    DOMObjectMap::AddResult result = domObjects().add(objectHandle, nullptr);
+    if (result.isNewEntry)
+        result.iterator->value = std::make_unique<DOMObjectCacheData>(G_OBJECT(wrapper));
 }
 
 void DOMObjectCache::put(WebCore::Node* objectHandle, void* wrapper)
 {
-    if (domObjects().contains(objectHandle))
+    DOMObjectMap::AddResult result = domObjects().add(objectHandle, nullptr);
+    if (!result.isNewEntry)
         return;
 
-    std::unique_ptr<DOMObjectCacheData> data = ""
-    auto dataPtr = data.get();
-    domObjects().set(objectHandle, WTF::move(data));
-
+    result.iterator->value = std::make_unique<DOMObjectCacheData>(G_OBJECT(wrapper));
     if (WebCore::Frame* frame = objectHandle->document().frame())
-        getOrCreateDOMObjectCacheFrameObserver(*frame).addObjectCacheData(*dataPtr);
+        getOrCreateDOMObjectCacheFrameObserver(*frame).addObjectCacheData(*result.iterator->value);
 }
 
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to