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