rtc::Buffer: Use RTC_DCHECK instead of assert

Review URL: https://codereview.webrtc.org/1749693002

Cr-Commit-Position: refs/heads/master@{#11826}
This commit is contained in:
kwiberg 2016-03-01 01:57:38 -08:00 committed by Commit bot
parent ffdd41ecf2
commit e3d99221c4
2 changed files with 17 additions and 19 deletions

View File

@ -11,13 +11,12 @@
#include "webrtc/base/buffer.h"
#include <algorithm>
#include <cassert>
#include <utility>
namespace rtc {
Buffer::Buffer() : size_(0), capacity_(0), data_(nullptr) {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
}
Buffer::Buffer(const Buffer& buf) : Buffer(buf.data(), buf.size()) {
@ -27,7 +26,7 @@ Buffer::Buffer(Buffer&& buf)
: size_(buf.size()),
capacity_(buf.capacity()),
data_(std::move(buf.data_)) {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
buf.OnMovedFrom();
}
@ -38,7 +37,7 @@ Buffer::Buffer(size_t size, size_t capacity)
: size_(size),
capacity_(std::max(size, capacity)),
data_(new uint8_t[capacity_]) {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
}
// Note: The destructor works even if the buffer has been moved from.

View File

@ -11,7 +11,6 @@
#ifndef WEBRTC_BASE_BUFFER_H_
#define WEBRTC_BASE_BUFFER_H_
#include <cassert>
#include <cstring>
#include <memory>
#include <utility>
@ -81,23 +80,23 @@ class Buffer {
// but you may also use .data<int8_t>() and .data<char>().
template <typename T = uint8_t, typename internal::ByteType<T>::t = 0>
const T* data() const {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
return reinterpret_cast<T*>(data_.get());
}
template <typename T = uint8_t, typename internal::ByteType<T>::t = 0>
T* data() {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
return reinterpret_cast<T*>(data_.get());
}
size_t size() const {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
return size_;
}
size_t capacity() const {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
return capacity_;
}
@ -108,8 +107,8 @@ class Buffer {
}
Buffer& operator=(Buffer&& buf) {
assert(IsConsistent());
assert(buf.IsConsistent());
RTC_DCHECK(IsConsistent());
RTC_DCHECK(buf.IsConsistent());
size_ = buf.size_;
capacity_ = buf.capacity_;
data_ = std::move(buf.data_);
@ -118,7 +117,7 @@ class Buffer {
}
bool operator==(const Buffer& buf) const {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
return size_ == buf.size() && memcmp(data_.get(), buf.data(), size_) == 0;
}
@ -138,7 +137,7 @@ class Buffer {
// same input types as the constructors.
template <typename T, typename internal::ByteType<T>::t = 0>
void SetData(const T* data, size_t size) {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
size_ = 0;
AppendData(data, size);
}
@ -169,12 +168,12 @@ class Buffer {
// the same input types as the constructors.
template <typename T, typename internal::ByteType<T>::t = 0>
void AppendData(const T* data, size_t size) {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
const size_t new_size = size_ + size;
EnsureCapacity(new_size);
std::memcpy(data_.get() + size_, data, size);
size_ = new_size;
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
}
template <typename T, size_t N, typename internal::ByteType<T>::t = 0>
@ -220,14 +219,14 @@ class Buffer {
// further reallocation. (Of course, this operation might need to reallocate
// the buffer.)
void EnsureCapacity(size_t capacity) {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
if (capacity <= capacity_)
return;
std::unique_ptr<uint8_t[]> new_data(new uint8_t[capacity]);
std::memcpy(new_data.get(), data_.get(), size_);
data_ = std::move(new_data);
capacity_ = capacity;
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
}
// b.Pass() does the same thing as std::move(b).
@ -235,7 +234,7 @@ class Buffer {
RTC_DEPRECATED Buffer&& Pass() { return DEPRECATED_Pass(); }
Buffer&& DEPRECATED_Pass() {
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
return std::move(*this);
}
@ -243,7 +242,7 @@ class Buffer {
// buffer has been moved from.
void Clear() {
size_ = 0;
assert(IsConsistent());
RTC_DCHECK(IsConsistent());
}
// Swaps two buffers. Also works for buffers that have been moved from.