Title: [103671] trunk/Source/WebCore
Revision
103671
Author
[email protected]
Date
2011-12-25 11:03:16 -0800 (Sun, 25 Dec 2011)

Log Message

Change CSS canvas code that does HashMap get/set to use the more efficient add idiom
https://bugs.webkit.org/show_bug.cgi?id=75204

Reviewed by Dan Bernstein.

* dom/Document.cpp:
(WebCore::Document::getCSSCanvasContext): Change local variable name of element to
element; it's not the function result, so not good to name it result.
(WebCore::Document::getCSSCanvasElement): Use add instead of get/set so we only do
one hash table lookup.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (103670 => 103671)


--- trunk/Source/WebCore/ChangeLog	2011-12-25 17:08:08 UTC (rev 103670)
+++ trunk/Source/WebCore/ChangeLog	2011-12-25 19:03:16 UTC (rev 103671)
@@ -1,3 +1,16 @@
+2011-12-25  Darin Adler  <[email protected]>
+
+        Change CSS canvas code that does HashMap get/set to use the more efficient add idiom
+        https://bugs.webkit.org/show_bug.cgi?id=75204
+
+        Reviewed by Dan Bernstein.
+
+        * dom/Document.cpp:
+        (WebCore::Document::getCSSCanvasContext): Change local variable name of element to
+        element; it's not the function result, so not good to name it result.
+        (WebCore::Document::getCSSCanvasElement): Use add instead of get/set so we only do
+        one hash table lookup.
+
 2011-12-24  Andreas Kling  <[email protected]>
 
         CSSElementStyleDeclarations should never move between elements.

Modified: trunk/Source/WebCore/dom/Document.cpp (103670 => 103671)


--- trunk/Source/WebCore/dom/Document.cpp	2011-12-25 17:08:08 UTC (rev 103670)
+++ trunk/Source/WebCore/dom/Document.cpp	2011-12-25 19:03:16 UTC (rev 103671)
@@ -4674,21 +4674,19 @@
 
 CanvasRenderingContext* Document::getCSSCanvasContext(const String& type, const String& name, int width, int height)
 {
-    HTMLCanvasElement* result = getCSSCanvasElement(name);
-    if (!result)
+    HTMLCanvasElement* element = getCSSCanvasElement(name);
+    if (!element)
         return 0;
-    result->setSize(IntSize(width, height));
-    return result->getContext(type);
+    element->setSize(IntSize(width, height));
+    return element->getContext(type);
 }
 
 HTMLCanvasElement* Document::getCSSCanvasElement(const String& name)
 {
-    RefPtr<HTMLCanvasElement> result = m_cssCanvasElements.get(name).get();
-    if (!result) {
-        result = HTMLCanvasElement::create(this);
-        m_cssCanvasElements.set(name, result);
-    }
-    return result.get();
+    RefPtr<HTMLCanvasElement>& element = m_cssCanvasElements.add(name, 0).first->second;
+    if (!element)
+        element = HTMLCanvasElement::create(this);
+    return element.get();
 }
 
 void Document::initDNSPrefetch()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to