Revert "RTPFragmentationHeader::VerifyAndAllocateFragmentationHeader: Verify that size fits in 16 bits" https://webrtc-codereview.appspot.com/47229004/

Reason for revert: Breaks Chromium FYI compilation

This reverts commit 10022cdeae785187e1d4329042b4ed294c393a16.

BUG=484432
TBR=tommi

Review URL: https://webrtc-codereview.appspot.com/54499004

Cr-Commit-Position: refs/heads/master@{#9247}
This commit is contained in:
Magnus Jedvert 2015-05-21 13:25:24 +02:00
parent 10022cdeae
commit 848d524879

View File

@ -15,9 +15,7 @@
#include <string.h> // memcpy
#include <algorithm>
#include <limits>
#include "webrtc/base/checks.h"
#include "webrtc/base/constructormagic.h"
#include "webrtc/common_types.h"
#include "webrtc/common_video/rotation.h"
@ -195,17 +193,15 @@ class RTPFragmentationHeader {
}
}
void VerifyAndAllocateFragmentationHeader(const size_t size) {
CHECK(size <= std::numeric_limits<uint16_t>::max());
const uint16_t size16 = static_cast<uint16_t>(size);
if (fragmentationVectorSize < size16) {
void VerifyAndAllocateFragmentationHeader(const uint16_t size) {
if (fragmentationVectorSize < size) {
uint16_t oldVectorSize = fragmentationVectorSize;
{
// offset
size_t* oldOffsets = fragmentationOffset;
fragmentationOffset = new size_t[size16];
fragmentationOffset = new size_t[size];
memset(fragmentationOffset + oldVectorSize, 0,
sizeof(size_t) * (size16 - oldVectorSize));
sizeof(size_t) * (size - oldVectorSize));
// copy old values
memcpy(fragmentationOffset, oldOffsets,
sizeof(size_t) * oldVectorSize);
@ -214,9 +210,9 @@ class RTPFragmentationHeader {
// length
{
size_t* oldLengths = fragmentationLength;
fragmentationLength = new size_t[size16];
fragmentationLength = new size_t[size];
memset(fragmentationLength + oldVectorSize, 0,
sizeof(size_t) * (size16 - oldVectorSize));
sizeof(size_t) * (size - oldVectorSize));
memcpy(fragmentationLength, oldLengths,
sizeof(size_t) * oldVectorSize);
delete[] oldLengths;
@ -224,9 +220,9 @@ class RTPFragmentationHeader {
// time diff
{
uint16_t* oldTimeDiffs = fragmentationTimeDiff;
fragmentationTimeDiff = new uint16_t[size16];
fragmentationTimeDiff = new uint16_t[size];
memset(fragmentationTimeDiff + oldVectorSize, 0,
sizeof(uint16_t) * (size16 - oldVectorSize));
sizeof(uint16_t) * (size - oldVectorSize));
memcpy(fragmentationTimeDiff, oldTimeDiffs,
sizeof(uint16_t) * oldVectorSize);
delete[] oldTimeDiffs;
@ -234,14 +230,14 @@ class RTPFragmentationHeader {
// payload type
{
uint8_t* oldTimePlTypes = fragmentationPlType;
fragmentationPlType = new uint8_t[size16];
fragmentationPlType = new uint8_t[size];
memset(fragmentationPlType + oldVectorSize, 0,
sizeof(uint8_t) * (size16 - oldVectorSize));
sizeof(uint8_t) * (size - oldVectorSize));
memcpy(fragmentationPlType, oldTimePlTypes,
sizeof(uint8_t) * oldVectorSize);
delete[] oldTimePlTypes;
}
fragmentationVectorSize = size16;
fragmentationVectorSize = size;
}
}