Index: cc/damage_tracker.cc |
diff --git a/cc/damage_tracker.cc b/cc/damage_tracker.cc |
index bd1c31f411b9a0aec5db4e0a542b4611a95b6dbc..02415e3c0b782638623454f3e44371019de0a0f6 100644 |
--- a/cc/damage_tracker.cc |
+++ b/cc/damage_tracker.cc |
@@ -151,10 +151,14 @@ void CCDamageTracker::updateDamageTrackingState(const std::vector<CCLayerImpl*>& |
FloatRect CCDamageTracker::removeRectFromCurrentFrame(int layerID, bool& layerIsNew) |
{ |
- layerIsNew = !m_currentRectHistory->contains(layerID); |
- |
- // take() will remove the entry from the map, or if not found, return a default (empty) rect. |
- return m_currentRectHistory->take(layerID); |
+ RectMap::iterator iter = m_currentRectHistory->find(layerID); |
+ layerIsNew = iter == m_currentRectHistory->end(); |
+ if (layerIsNew) |
+ return FloatRect(); |
+ |
+ FloatRect ret = iter->second; |
+ m_currentRectHistory->erase(iter); |
+ return ret; |
} |
void CCDamageTracker::saveRectForNextFrame(int layerID, const FloatRect& targetSpaceRect) |
@@ -162,7 +166,7 @@ void CCDamageTracker::saveRectForNextFrame(int layerID, const FloatRect& targetS |
// 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); |
+ (*m_nextRectHistory)[layerID] = targetSpaceRect; |
} |
FloatRect CCDamageTracker::trackDamageFromActiveLayers(const std::vector<CCLayerImpl*>& layerList, int targetSurfaceLayerID) |
@@ -207,11 +211,7 @@ FloatRect CCDamageTracker::trackDamageFromLeftoverRects() |
FloatRect damageRect = FloatRect(); |
for (RectMap::iterator it = m_currentRectHistory->begin(); it != m_currentRectHistory->end(); ++it) |
-#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE |
- damageRect.unite(it->value); |
-#else |
damageRect.unite(it->second); |
-#endif |
m_currentRectHistory->clear(); |