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