Move ArrayView, Buffer and related to webrtc namespace
Bug: webrtc:42232595 Change-Id: Idcd603d534eda6a5c1eea36d2c1c1e80c19fa0ca Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376561 Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Evan Shrubsole <eshr@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43863}
This commit is contained in:
parent
e42988ec0e
commit
fe5bdd75e0
@ -20,7 +20,7 @@
|
|||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/type_traits.h"
|
#include "rtc_base/type_traits.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
// tl;dr: rtc::ArrayView is the same thing as gsl::span from the Guideline
|
// tl;dr: rtc::ArrayView is the same thing as gsl::span from the Guideline
|
||||||
// Support Library.
|
// Support Library.
|
||||||
@ -330,6 +330,16 @@ inline ArrayView<U, Size> reinterpret_array_view(ArrayView<T, Size> view) {
|
|||||||
return ArrayView<U, Size>(reinterpret_cast<U*>(view.data()), view.size());
|
return ArrayView<U, Size>(reinterpret_cast<U*>(view.data()), view.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace webrtc
|
||||||
|
|
||||||
|
// Re-export symbols from the webrtc namespace for backwards compatibility.
|
||||||
|
// TODO(bugs.webrtc.org/4222596): Remove once all references are updated.
|
||||||
|
namespace rtc {
|
||||||
|
template <typename T,
|
||||||
|
std::ptrdiff_t Size = webrtc::array_view_internal::kArrayViewVarSize>
|
||||||
|
using ArrayView = ::webrtc::ArrayView<T, Size>;
|
||||||
|
using ::webrtc::MakeArrayView;
|
||||||
|
using ::webrtc::reinterpret_array_view;
|
||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
||||||
#endif // API_ARRAY_VIEW_H_
|
#endif // API_ARRAY_VIEW_H_
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
#include "test/gmock.h"
|
#include "test/gmock.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@ -300,11 +300,11 @@ TEST(ArrayViewTest, TestStdArray) {
|
|||||||
constexpr size_t size = 5;
|
constexpr size_t size = 5;
|
||||||
std::array<float, size> arr{};
|
std::array<float, size> arr{};
|
||||||
// Fixed size view.
|
// Fixed size view.
|
||||||
rtc::ArrayView<float, size> arr_view_fixed(arr);
|
ArrayView<float, size> arr_view_fixed(arr);
|
||||||
EXPECT_EQ(arr.data(), arr_view_fixed.data());
|
EXPECT_EQ(arr.data(), arr_view_fixed.data());
|
||||||
static_assert(size == arr_view_fixed.size(), "");
|
static_assert(size == arr_view_fixed.size(), "");
|
||||||
// Variable size view.
|
// Variable size view.
|
||||||
rtc::ArrayView<float> arr_view(arr);
|
ArrayView<float> arr_view(arr);
|
||||||
EXPECT_EQ(arr.data(), arr_view.data());
|
EXPECT_EQ(arr.data(), arr_view.data());
|
||||||
EXPECT_EQ(size, arr_view.size());
|
EXPECT_EQ(size, arr_view.size());
|
||||||
}
|
}
|
||||||
@ -313,17 +313,17 @@ TEST(ArrayViewTest, TestConstStdArray) {
|
|||||||
constexpr size_t size = 5;
|
constexpr size_t size = 5;
|
||||||
|
|
||||||
constexpr std::array<float, size> constexpr_arr{};
|
constexpr std::array<float, size> constexpr_arr{};
|
||||||
rtc::ArrayView<const float, size> constexpr_arr_view(constexpr_arr);
|
ArrayView<const float, size> constexpr_arr_view(constexpr_arr);
|
||||||
EXPECT_EQ(constexpr_arr.data(), constexpr_arr_view.data());
|
EXPECT_EQ(constexpr_arr.data(), constexpr_arr_view.data());
|
||||||
static_assert(constexpr_arr.size() == constexpr_arr_view.size(), "");
|
static_assert(constexpr_arr.size() == constexpr_arr_view.size(), "");
|
||||||
|
|
||||||
const std::array<float, size> const_arr{};
|
const std::array<float, size> const_arr{};
|
||||||
rtc::ArrayView<const float, size> const_arr_view(const_arr);
|
ArrayView<const float, size> const_arr_view(const_arr);
|
||||||
EXPECT_EQ(const_arr.data(), const_arr_view.data());
|
EXPECT_EQ(const_arr.data(), const_arr_view.data());
|
||||||
static_assert(const_arr.size() == const_arr_view.size(), "");
|
static_assert(const_arr.size() == const_arr_view.size(), "");
|
||||||
|
|
||||||
std::array<float, size> non_const_arr{};
|
std::array<float, size> non_const_arr{};
|
||||||
rtc::ArrayView<const float, size> non_const_arr_view(non_const_arr);
|
ArrayView<const float, size> non_const_arr_view(non_const_arr);
|
||||||
EXPECT_EQ(non_const_arr.data(), non_const_arr_view.data());
|
EXPECT_EQ(non_const_arr.data(), non_const_arr_view.data());
|
||||||
static_assert(non_const_arr.size() == non_const_arr_view.size(), "");
|
static_assert(non_const_arr.size() == non_const_arr_view.size(), "");
|
||||||
}
|
}
|
||||||
@ -629,4 +629,4 @@ TEST(ArrayViewTest, TestReinterpretCastVariableSize) {
|
|||||||
EXPECT_EQ(uint8_av[1], 2);
|
EXPECT_EQ(uint8_av[1], 2);
|
||||||
EXPECT_EQ(uint8_av[2], 3);
|
EXPECT_EQ(uint8_av[2], 3);
|
||||||
}
|
}
|
||||||
} // namespace rtc
|
} // namespace webrtc
|
||||||
|
|||||||
@ -35,7 +35,6 @@
|
|||||||
|
|
||||||
namespace rtc {
|
namespace rtc {
|
||||||
|
|
||||||
class CopyOnWriteBuffer;
|
|
||||||
struct PacketOptions;
|
struct PacketOptions;
|
||||||
class PacketTransportInternal;
|
class PacketTransportInternal;
|
||||||
|
|
||||||
@ -43,6 +42,8 @@ class PacketTransportInternal;
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
class CopyOnWriteBuffer;
|
||||||
|
|
||||||
class RtpTransport : public RtpTransportInternal {
|
class RtpTransport : public RtpTransportInternal {
|
||||||
public:
|
public:
|
||||||
RtpTransport(const RtpTransport&) = delete;
|
RtpTransport(const RtpTransport&) = delete;
|
||||||
|
|||||||
@ -22,12 +22,13 @@
|
|||||||
#include "rtc_base/ssl_stream_adapter.h"
|
#include "rtc_base/ssl_stream_adapter.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace rtc {
|
||||||
class CopyOnWriteBuffer;
|
|
||||||
struct PacketOptions;
|
struct PacketOptions;
|
||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
class CopyOnWriteBuffer;
|
||||||
|
|
||||||
// This class is an internal interface; it is not accessible to API consumers
|
// This class is an internal interface; it is not accessible to API consumers
|
||||||
// but is accessible to internal classes in order to send and receive RTP and
|
// but is accessible to internal classes in order to send and receive RTP and
|
||||||
// RTCP packets belonging to a single RTP session. Additional convenience and
|
// RTCP packets belonging to a single RTP session. Additional convenience and
|
||||||
|
|||||||
@ -22,11 +22,8 @@
|
|||||||
#include "rtc_base/copy_on_write_buffer.h"
|
#include "rtc_base/copy_on_write_buffer.h"
|
||||||
#include "rtc_base/ssl_stream_adapter.h" // For SSLRole
|
#include "rtc_base/ssl_stream_adapter.h" // For SSLRole
|
||||||
|
|
||||||
namespace rtc {
|
|
||||||
class CopyOnWriteBuffer;
|
|
||||||
} // namespace rtc
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
class CopyOnWriteBuffer;
|
||||||
struct DataChannelInit;
|
struct DataChannelInit;
|
||||||
|
|
||||||
// Wraps the `uint16_t` sctp data channel stream id value and does range
|
// Wraps the `uint16_t` sctp data channel stream id value and does range
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
#include "rtc_base/type_traits.h"
|
#include "rtc_base/type_traits.h"
|
||||||
#include "rtc_base/zero_memory.h"
|
#include "rtc_base/zero_memory.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace internal {
|
namespace internal {
|
||||||
|
|
||||||
@ -447,6 +447,16 @@ using Buffer = BufferT<uint8_t>;
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
using ZeroOnFreeBuffer = BufferT<T, true>;
|
using ZeroOnFreeBuffer = BufferT<T, true>;
|
||||||
|
|
||||||
|
} // namespace webrtc
|
||||||
|
|
||||||
|
// Re-export symbols from the webrtc namespace for backwards compatibility.
|
||||||
|
// TODO(bugs.webrtc.org/4222596): Remove once all references are updated.
|
||||||
|
namespace rtc {
|
||||||
|
template <typename T, bool ZeroOnFree = false>
|
||||||
|
using BufferT = ::webrtc::BufferT<T, ZeroOnFree>;
|
||||||
|
using ::webrtc::Buffer;
|
||||||
|
template <typename T>
|
||||||
|
using ZeroOnFreeBuffer = ::webrtc::ZeroOnFreeBuffer<T>;
|
||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
||||||
#endif // RTC_BASE_BUFFER_H_
|
#endif // RTC_BASE_BUFFER_H_
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
#include "test/gmock.h"
|
#include "test/gmock.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ TEST(BufferTest, TestAppendData) {
|
|||||||
EXPECT_EQ(buf, Buffer(exp));
|
EXPECT_EQ(buf, Buffer(exp));
|
||||||
Buffer buf2;
|
Buffer buf2;
|
||||||
buf2.AppendData(buf);
|
buf2.AppendData(buf);
|
||||||
buf2.AppendData(rtc::ArrayView<uint8_t>(buf));
|
buf2.AppendData(ArrayView<uint8_t>(buf));
|
||||||
const int8_t exp2[] = {0x4, 0x5, 0x6, 0xa, 0xb, 0x4, 0x5, 0x6, 0xa, 0xb};
|
const int8_t exp2[] = {0x4, 0x5, 0x6, 0xa, 0xb, 0x4, 0x5, 0x6, 0xa, 0xb};
|
||||||
EXPECT_EQ(buf2, Buffer(exp2));
|
EXPECT_EQ(buf2, Buffer(exp2));
|
||||||
}
|
}
|
||||||
@ -242,7 +242,7 @@ TEST(BufferTest, TestClear) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(BufferTest, TestLambdaSetAppend) {
|
TEST(BufferTest, TestLambdaSetAppend) {
|
||||||
auto setter = [](rtc::ArrayView<uint8_t> av) {
|
auto setter = [](ArrayView<uint8_t> av) {
|
||||||
for (int i = 0; i != 15; ++i)
|
for (int i = 0; i != 15; ++i)
|
||||||
av[i] = kTestData[i];
|
av[i] = kTestData[i];
|
||||||
return 15;
|
return 15;
|
||||||
@ -262,7 +262,7 @@ TEST(BufferTest, TestLambdaSetAppend) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(BufferTest, TestLambdaSetAppendSigned) {
|
TEST(BufferTest, TestLambdaSetAppendSigned) {
|
||||||
auto setter = [](rtc::ArrayView<int8_t> av) {
|
auto setter = [](ArrayView<int8_t> av) {
|
||||||
for (int i = 0; i != 15; ++i)
|
for (int i = 0; i != 15; ++i)
|
||||||
av[i] = kTestData[i];
|
av[i] = kTestData[i];
|
||||||
return 15;
|
return 15;
|
||||||
@ -282,7 +282,7 @@ TEST(BufferTest, TestLambdaSetAppendSigned) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(BufferTest, TestLambdaAppendEmpty) {
|
TEST(BufferTest, TestLambdaAppendEmpty) {
|
||||||
auto setter = [](rtc::ArrayView<uint8_t> av) {
|
auto setter = [](ArrayView<uint8_t> av) {
|
||||||
for (int i = 0; i != 15; ++i)
|
for (int i = 0; i != 15; ++i)
|
||||||
av[i] = kTestData[i];
|
av[i] = kTestData[i];
|
||||||
return 15;
|
return 15;
|
||||||
@ -300,7 +300,7 @@ TEST(BufferTest, TestLambdaAppendEmpty) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(BufferTest, TestLambdaAppendPartial) {
|
TEST(BufferTest, TestLambdaAppendPartial) {
|
||||||
auto setter = [](rtc::ArrayView<uint8_t> av) {
|
auto setter = [](ArrayView<uint8_t> av) {
|
||||||
for (int i = 0; i != 7; ++i)
|
for (int i = 0; i != 7; ++i)
|
||||||
av[i] = kTestData[i];
|
av[i] = kTestData[i];
|
||||||
return 7;
|
return 7;
|
||||||
@ -316,7 +316,7 @@ TEST(BufferTest, TestLambdaAppendPartial) {
|
|||||||
|
|
||||||
TEST(BufferTest, TestMutableLambdaSetAppend) {
|
TEST(BufferTest, TestMutableLambdaSetAppend) {
|
||||||
uint8_t magic_number = 17;
|
uint8_t magic_number = 17;
|
||||||
auto setter = [magic_number](rtc::ArrayView<uint8_t> av) mutable {
|
auto setter = [magic_number](ArrayView<uint8_t> av) mutable {
|
||||||
for (int i = 0; i != 15; ++i) {
|
for (int i = 0; i != 15; ++i) {
|
||||||
av[i] = magic_number;
|
av[i] = magic_number;
|
||||||
++magic_number;
|
++magic_number;
|
||||||
@ -489,7 +489,7 @@ TEST(ZeroOnFreeBufferTest, TestZeroOnSetData) {
|
|||||||
|
|
||||||
TEST(ZeroOnFreeBufferTest, TestZeroOnSetDataFromSetter) {
|
TEST(ZeroOnFreeBufferTest, TestZeroOnSetDataFromSetter) {
|
||||||
static constexpr size_t offset = 1;
|
static constexpr size_t offset = 1;
|
||||||
const auto setter = [](rtc::ArrayView<uint8_t> av) {
|
const auto setter = [](ArrayView<uint8_t> av) {
|
||||||
for (int i = 0; i != 2; ++i)
|
for (int i = 0; i != 2; ++i)
|
||||||
av[i] = kTestData[offset + i];
|
av[i] = kTestData[offset + i];
|
||||||
return 2;
|
return 2;
|
||||||
@ -545,4 +545,4 @@ TEST(ZeroOnFreeBufferTest, TestZeroOnClear) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace rtc
|
} // namespace webrtc
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
CopyOnWriteBuffer::CopyOnWriteBuffer() : offset_(0), size_(0) {
|
CopyOnWriteBuffer::CopyOnWriteBuffer() : offset_(0), size_(0) {
|
||||||
RTC_DCHECK(IsConsistent());
|
RTC_DCHECK(IsConsistent());
|
||||||
@ -124,4 +124,4 @@ void CopyOnWriteBuffer::UnshareAndEnsureCapacity(size_t new_capacity) {
|
|||||||
RTC_DCHECK(IsConsistent());
|
RTC_DCHECK(IsConsistent());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace rtc
|
} // namespace webrtc
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
#include "rtc_base/system/rtc_export.h"
|
#include "rtc_base/system/rtc_export.h"
|
||||||
#include "rtc_base/type_traits.h"
|
#include "rtc_base/type_traits.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class RTC_EXPORT CopyOnWriteBuffer {
|
class RTC_EXPORT CopyOnWriteBuffer {
|
||||||
public:
|
public:
|
||||||
@ -316,6 +316,12 @@ class RTC_EXPORT CopyOnWriteBuffer {
|
|||||||
// Should be 0 if the buffer_ is empty.
|
// Should be 0 if the buffer_ is empty.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace webrtc
|
||||||
|
|
||||||
|
// Re-export symbols from the webrtc namespace for backwards compatibility.
|
||||||
|
// TODO(bugs.webrtc.org/4222596): Remove once all references are updated.
|
||||||
|
namespace rtc {
|
||||||
|
using ::webrtc::CopyOnWriteBuffer;
|
||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
||||||
#endif // RTC_BASE_COPY_ON_WRITE_BUFFER_H_
|
#endif // RTC_BASE_COPY_ON_WRITE_BUFFER_H_
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@ -370,8 +370,8 @@ TEST(CopyOnWriteBufferTest, SlicesAreIndependent) {
|
|||||||
TEST(CopyOnWriteBufferTest, AcceptsVectorLikeTypes) {
|
TEST(CopyOnWriteBufferTest, AcceptsVectorLikeTypes) {
|
||||||
std::vector<uint8_t> a = {1, 2};
|
std::vector<uint8_t> a = {1, 2};
|
||||||
std::vector<int8_t> b = {3, 4};
|
std::vector<int8_t> b = {3, 4};
|
||||||
rtc::ArrayView<uint8_t> c(a);
|
ArrayView<uint8_t> c(a);
|
||||||
rtc::ArrayView<const int8_t> d(b);
|
ArrayView<const int8_t> d(b);
|
||||||
|
|
||||||
CopyOnWriteBuffer a_buf(a);
|
CopyOnWriteBuffer a_buf(a);
|
||||||
CopyOnWriteBuffer b_buf(b);
|
CopyOnWriteBuffer b_buf(b);
|
||||||
@ -387,4 +387,4 @@ TEST(CopyOnWriteBufferTest, AcceptsVectorLikeTypes) {
|
|||||||
EXPECT_EQ(all.size(), 8U);
|
EXPECT_EQ(all.size(), 8U);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace rtc
|
} // namespace webrtc
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/zero_memory.h"
|
#include "rtc_base/zero_memory.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
// Code and comment taken from "OPENSSL_cleanse" of BoringSSL.
|
// Code and comment taken from "OPENSSL_cleanse" of BoringSSL.
|
||||||
void ExplicitZeroMemory(void* ptr, size_t len) {
|
void ExplicitZeroMemory(void* ptr, size_t len) {
|
||||||
@ -35,4 +35,4 @@ void ExplicitZeroMemory(void* ptr, size_t len) {
|
|||||||
#endif // !WEBRTC_WIN
|
#endif // !WEBRTC_WIN
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace rtc
|
} // namespace webrtc
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "api/array_view.h"
|
#include "api/array_view.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
// Fill memory with zeros in a way that the compiler doesn't optimize it away
|
// Fill memory with zeros in a way that the compiler doesn't optimize it away
|
||||||
// even if the pointer is not used afterwards.
|
// even if the pointer is not used afterwards.
|
||||||
@ -30,6 +30,12 @@ void ExplicitZeroMemory(rtc::ArrayView<T> a) {
|
|||||||
ExplicitZeroMemory(a.data(), a.size());
|
ExplicitZeroMemory(a.data(), a.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace webrtc
|
||||||
|
|
||||||
|
// Re-export symbols from the webrtc namespace for backwards compatibility.
|
||||||
|
// TODO(bugs.webrtc.org/4222596): Remove once all references are updated.
|
||||||
|
namespace rtc {
|
||||||
|
using ::webrtc::ExplicitZeroMemory;
|
||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
||||||
#endif // RTC_BASE_ZERO_MEMORY_H_
|
#endif // RTC_BASE_ZERO_MEMORY_H_
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
#include "api/array_view.h"
|
#include "api/array_view.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace webrtc {
|
||||||
|
|
||||||
TEST(ZeroMemoryTest, TestZeroMemory) {
|
TEST(ZeroMemoryTest, TestZeroMemory) {
|
||||||
static const size_t kBufferSize = 32;
|
static const size_t kBufferSize = 32;
|
||||||
@ -35,7 +35,7 @@ TEST(ZeroMemoryTest, TestZeroArrayView) {
|
|||||||
for (size_t i = 0; i < kBufferSize; i++) {
|
for (size_t i = 0; i < kBufferSize; i++) {
|
||||||
buffer[i] = static_cast<uint8_t>(i + 1);
|
buffer[i] = static_cast<uint8_t>(i + 1);
|
||||||
}
|
}
|
||||||
ExplicitZeroMemory(rtc::ArrayView<uint8_t>(buffer, sizeof(buffer)));
|
ExplicitZeroMemory(ArrayView<uint8_t>(buffer, sizeof(buffer)));
|
||||||
for (size_t i = 0; i < kBufferSize; i++) {
|
for (size_t i = 0; i < kBufferSize; i++) {
|
||||||
EXPECT_EQ(buffer[i], 0);
|
EXPECT_EQ(buffer[i], 0);
|
||||||
}
|
}
|
||||||
@ -50,4 +50,4 @@ TEST(ZeroMemoryTest, TestZeroMemoryUnused) {
|
|||||||
ExplicitZeroMemory(buffer, sizeof(buffer));
|
ExplicitZeroMemory(buffer, sizeof(buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace rtc
|
} // namespace webrtc
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user