Title: [182541] releases/WebKitGTK/webkit-2.4/Source/WebCore
Revision
182541
Author
[email protected]
Date
2015-04-08 09:24:17 -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.4/Source/WebCore/ChangeLog (182540 => 182541)


--- releases/WebKitGTK/webkit-2.4/Source/WebCore/ChangeLog	2015-04-08 16:10:56 UTC (rev 182540)
+++ releases/WebKitGTK/webkit-2.4/Source/WebCore/ChangeLog	2015-04-08 16:24:17 UTC (rev 182541)
@@ -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):
+
 2014-10-22  Milan Crha  <[email protected]>
 
         Do not include GraphicsContext3D.h when 3D_GRAPHICS is not used.

Modified: releases/WebKitGTK/webkit-2.4/Source/WebCore/bindings/gobject/DOMObjectCache.cpp (182540 => 182541)


--- releases/WebKitGTK/webkit-2.4/Source/WebCore/bindings/gobject/DOMObjectCache.cpp	2015-04-08 16:10:56 UTC (rev 182540)
+++ releases/WebKitGTK/webkit-2.4/Source/WebCore/bindings/gobject/DOMObjectCache.cpp	2015-04-08 16:24:17 UTC (rev 182541)
@@ -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, std::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, std::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