1 // Copyright 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "cc/resources/memory_history.h" 6 7 #include <limits> 8 9 namespace cc { 10 11 // static 12 scoped_ptr<MemoryHistory> MemoryHistory::Create() { 13 return make_scoped_ptr(new MemoryHistory()); 14 } 15 16 MemoryHistory::MemoryHistory() {} 17 18 void MemoryHistory::SaveEntry(const MemoryHistory::Entry& entry) { 19 ring_buffer_.SaveToBuffer(entry); 20 } 21 22 void MemoryHistory::GetMinAndMax(size_t* min, size_t* max) const { 23 *min = std::numeric_limits<size_t>::max(); 24 *max = 0; 25 26 for (RingBufferType::Iterator it = ring_buffer_.Begin(); it; ++it) { 27 size_t bytes_total = it->bytes_total(); 28 29 if (bytes_total < *min) 30 *min = bytes_total; 31 if (bytes_total > *max) 32 *max = bytes_total; 33 } 34 35 if (*min > *max) 36 *min = *max; 37 } 38 39 } // namespace cc 40