1// Copyright (c) 2011 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 "base/memory/ref_counted_memory.h"
6
7RefCountedMemory::RefCountedMemory() {
8}
9
10RefCountedMemory::~RefCountedMemory() {
11}
12
13const unsigned char* RefCountedStaticMemory::front() const {
14  return data_;
15}
16
17size_t RefCountedStaticMemory::size() const {
18  return length_;
19}
20
21RefCountedBytes::RefCountedBytes() {
22}
23
24RefCountedBytes::RefCountedBytes(const std::vector<unsigned char>& initializer)
25    : data(initializer) {
26}
27
28RefCountedBytes* RefCountedBytes::TakeVector(
29    std::vector<unsigned char>* to_destroy) {
30  RefCountedBytes* bytes = new RefCountedBytes;
31  bytes->data.swap(*to_destroy);
32  return bytes;
33}
34
35const unsigned char* RefCountedBytes::front() const {
36  // STL will assert if we do front() on an empty vector, but calling code
37  // expects a NULL.
38  return size() ? &data.front() : NULL;
39}
40
41size_t RefCountedBytes::size() const {
42  return data.size();
43}
44
45RefCountedBytes::~RefCountedBytes() {
46}
47