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