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 9namespace cc { 10 11// static 12scoped_ptr<MemoryHistory> MemoryHistory::Create() { 13 return make_scoped_ptr(new MemoryHistory()); 14} 15 16MemoryHistory::MemoryHistory() {} 17 18void MemoryHistory::SaveEntry(const MemoryHistory::Entry& entry) { 19 ring_buffer_.SaveToBuffer(entry); 20} 21 22void 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