[chromium] Remove HashMap workaround for layers with id=0 in CCDamageTracker
authordanakj@chromium.org <danakj@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Jul 2012 00:17:24 +0000 (00:17 +0000)
committerdanakj@chromium.org <danakj@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Jul 2012 00:17:24 +0000 (00:17 +0000)
https://bugs.webkit.org/show_bug.cgi?id=90825

Reviewed by Adrienne Walker.

Layer ids are no longer allowed to be 0, and the behaviour is guarded
with asserts, so this workaround is not needed any longer.

* platform/graphics/chromium/cc/CCDamageTracker.h:
(CCDamageTracker):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122170 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.cpp
Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.h

index afac97b..5702732 100644 (file)
@@ -1,3 +1,16 @@
+2012-07-09  Dana Jansens  <danakj@chromium.org>
+
+        [chromium] Remove HashMap workaround for layers with id=0 in CCDamageTracker
+        https://bugs.webkit.org/show_bug.cgi?id=90825
+
+        Reviewed by Adrienne Walker.
+
+        Layer ids are no longer allowed to be 0, and the behaviour is guarded
+        with asserts, so this workaround is not needed any longer.
+
+        * platform/graphics/chromium/cc/CCDamageTracker.h:
+        (CCDamageTracker):
+
 2012-07-09  Vincent Scheib  <scheib@chromium.org>
 
         Pointer Lock requestPointerLock rejects locking an element not in a document.
index 1dbb594..da99426 100644 (file)
@@ -186,6 +186,7 @@ FloatRect CCDamageTracker::removeRectFromCurrentFrame(int layerID, bool& layerIs
 void CCDamageTracker::saveRectForNextFrame(int layerID, const FloatRect& targetSpaceRect)
 {
     // This layer should not yet exist in next frame's history.
+    ASSERT(layerID > 0);
     ASSERT(m_nextRectHistory->find(layerID) == m_nextRectHistory->end());
     m_nextRectHistory->set(layerID, targetSpaceRect);
 }
index 8d6a2ee..a86c587 100644 (file)
@@ -70,14 +70,7 @@ private:
     // To correctly track exposed regions, two hashtables of rects are maintained.
     // The "current" map is used to compute exposed regions of the current frame, while
     // the "next" map is used to collect layer rects that are used in the next frame.
-    struct RectMapKeyTraits : HashTraits<int> {
-        static const bool emptyValueIsZero = false;
-        static const bool needsDestruction = false;
-        static int emptyValue() { return -1; }
-        static void constructDeletedValue(int& slot) { slot = -2; }
-        static bool isDeletedValue(int value) { return value == -2; }
-    };
-    typedef HashMap<int, FloatRect, DefaultHash<int>::Hash, RectMapKeyTraits> RectMap;
+    typedef HashMap<int, FloatRect> RectMap;
     OwnPtr<RectMap> m_currentRectHistory;
     OwnPtr<RectMap> m_nextRectHistory;