Index: third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp |
index 4c091582de49074dcaf4289d1c512f876f1bd962..42b5a7a29f5129787aed231136db486b19b53a21 100644 |
--- a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp |
@@ -249,13 +249,13 @@ void DrawingBuffer::freeRecycledMailboxes() |
std::unique_ptr<cc::SharedBitmap> DrawingBuffer::createOrRecycleBitmap() |
{ |
- size_t i = 0; |
- while (i < m_recycledBitmaps.size()) { |
- if (m_recycledBitmaps[i].size != m_size) |
- m_recycledBitmaps.remove(i); // Removed this position so iterate on it again. |
- else |
- ++i; |
- } |
+ auto it = std::remove_if(m_recycledBitmaps.begin(), m_recycledBitmaps.end(), |
+ [this](const RecycledBitmap& bitmap) |
+ { |
+ return bitmap.size != m_size; |
+ }); |
+ m_recycledBitmaps.shrink(it - m_recycledBitmaps.begin()); |
+ |
if (!m_recycledBitmaps.isEmpty()) { |
RecycledBitmap recycled = std::move(m_recycledBitmaps.last()); |
m_recycledBitmaps.removeLast(); |