Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(392)

Side by Side Diff: media/base/data_buffer.cc

Issue 149573: Refactor WritableBuffer interface for more useful ptr management. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/base/data_buffer.h ('k') | media/base/data_buffer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2008-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2008-2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/logging.h" 5 #include "base/logging.h"
6 #include "media/base/data_buffer.h" 6 #include "media/base/data_buffer.h"
7 7
8 namespace media { 8 namespace media {
9 9
10 DataBuffer::DataBuffer() 10 DataBuffer::DataBuffer(uint8* buffer, size_t buffer_size)
11 : data_(NULL), 11 : data_(buffer),
12 buffer_size_(0), 12 buffer_size_(buffer_size),
13 data_size_(buffer_size) {
14 }
15
16 DataBuffer::DataBuffer(size_t buffer_size)
17 : data_(new uint8[buffer_size]),
18 buffer_size_(buffer_size),
13 data_size_(0) { 19 data_size_(0) {
20 CHECK(data_.get()) << "DataBuffer ctor failed to allocate memory";
21
22 // Prevent arbitrary pointers.
23 if (buffer_size == 0)
24 data_.reset(NULL);
14 } 25 }
15 26
16 DataBuffer::~DataBuffer() { 27 DataBuffer::~DataBuffer() {
17 delete [] data_;
18 } 28 }
19 29
20 const uint8* DataBuffer::GetData() const { 30 const uint8* DataBuffer::GetData() const {
21 return data_; 31 return data_.get();
22 } 32 }
23 33
24 size_t DataBuffer::GetDataSize() const { 34 size_t DataBuffer::GetDataSize() const {
25 return data_size_; 35 return data_size_;
26 } 36 }
27 37
28 uint8* DataBuffer::GetWritableData(size_t buffer_size) { 38 uint8* DataBuffer::GetWritableData() {
29 if (buffer_size > buffer_size_) { 39 return data_.get();
30 delete [] data_;
31 data_ = new uint8[buffer_size];
32 if (!data_) {
33 NOTREACHED();
34 buffer_size = 0;
35 }
36 buffer_size_ = buffer_size;
37 }
38 data_size_ = buffer_size;
39 return data_;
40 } 40 }
41 41
42 42
43 void DataBuffer::SetDataSize(size_t data_size) { 43 void DataBuffer::SetDataSize(size_t data_size) {
44 DCHECK(data_size <= buffer_size_); 44 DCHECK(data_size <= buffer_size_);
45 data_size_ = data_size; 45 data_size_ = data_size;
46 } 46 }
47 47
48 size_t DataBuffer::GetBufferSize() const {
49 return buffer_size_;
50 }
51
48 } // namespace media 52 } // namespace media
OLDNEW
« no previous file with comments | « media/base/data_buffer.h ('k') | media/base/data_buffer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698