0

Remove Pickle::BeginWriteData/TrimWriteData, it's not used

BUG=None
R=jar@chromium.org

Review URL: https://codereview.chromium.org/38693003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231911 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
piman@chromium.org
2013-10-30 20:32:07 +00:00
parent 54c1529f8d
commit 7280f2f1c7
3 changed files with 4 additions and 80 deletions

@ -153,8 +153,7 @@ bool PickleIterator::ReadBytes(const char** data, int length) {
Pickle::Pickle()
: header_(NULL),
header_size_(sizeof(Header)),
capacity_(0),
variable_buffer_offset_(0) {
capacity_(0) {
Resize(kPayloadUnit);
header_->payload_size = 0;
}
@ -162,8 +161,7 @@ Pickle::Pickle()
Pickle::Pickle(int header_size)
: header_(NULL),
header_size_(AlignInt(header_size, sizeof(uint32))),
capacity_(0),
variable_buffer_offset_(0) {
capacity_(0) {
DCHECK_GE(static_cast<size_t>(header_size), sizeof(Header));
DCHECK_LE(header_size, kPayloadUnit);
Resize(kPayloadUnit);
@ -173,8 +171,7 @@ Pickle::Pickle(int header_size)
Pickle::Pickle(const char* data, size_t data_len)
: header_(reinterpret_cast<Header*>(const_cast<char*>(data))),
header_size_(0),
capacity_(kCapacityReadOnly),
variable_buffer_offset_(0) {
capacity_(kCapacityReadOnly) {
if (data_len >= sizeof(Header))
header_size_ = data_len - header_->payload_size;
@ -192,8 +189,7 @@ Pickle::Pickle(const char* data, size_t data_len)
Pickle::Pickle(const Pickle& other)
: header_(NULL),
header_size_(other.header_size_),
capacity_(0),
variable_buffer_offset_(other.variable_buffer_offset_) {
capacity_(0) {
size_t payload_size = header_size_ + other.header_->payload_size;
bool resized = Resize(payload_size);
CHECK(resized); // Realloc failed.
@ -223,7 +219,6 @@ Pickle& Pickle::operator=(const Pickle& other) {
CHECK(resized); // Realloc failed.
memcpy(header_, other.header_,
other.header_size_ + other.header_->payload_size);
variable_buffer_offset_ = other.variable_buffer_offset_;
return *this;
}
@ -267,43 +262,6 @@ bool Pickle::WriteBytes(const void* data, int data_len) {
return true;
}
char* Pickle::BeginWriteData(int length) {
DCHECK_EQ(variable_buffer_offset_, 0U) <<
"There can only be one variable buffer in a Pickle";
if (length < 0 || !WriteInt(length))
return NULL;
char *data_ptr = BeginWrite(length);
if (!data_ptr)
return NULL;
variable_buffer_offset_ =
data_ptr - reinterpret_cast<char*>(header_) - sizeof(int);
// EndWrite doesn't necessarily have to be called after the write operation,
// so we call it here to pad out what the caller will eventually write.
EndWrite(data_ptr, length);
return data_ptr;
}
void Pickle::TrimWriteData(int new_length) {
DCHECK_NE(variable_buffer_offset_, 0U);
// Fetch the the variable buffer size
int* cur_length = reinterpret_cast<int*>(
reinterpret_cast<char*>(header_) + variable_buffer_offset_);
if (new_length < 0 || new_length > *cur_length) {
NOTREACHED() << "Invalid length in TrimWriteData.";
return;
}
// Update the payload size and variable buffer size
header_->payload_size -= (*cur_length - new_length);
*cur_length = new_length;
}
void Pickle::Reserve(size_t additional_capacity) {
// Write at a uint32-aligned offset from the beginning of the header.
size_t offset = AlignInt(header_->payload_size, sizeof(uint32));

@ -252,27 +252,6 @@ class BASE_EXPORT Pickle {
// known size. See also WriteData.
bool WriteBytes(const void* data, int data_len);
// Same as WriteData, but allows the caller to write directly into the
// Pickle. This saves a copy in cases where the data is not already
// available in a buffer. The caller should take care to not write more
// than the length it declares it will. Use ReadData to get the data.
// Returns NULL on failure.
//
// The returned pointer will only be valid until the next write operation
// on this Pickle.
char* BeginWriteData(int length);
// For Pickles which contain variable length buffers (e.g. those created
// with BeginWriteData), the Pickle can
// be 'trimmed' if the amount of data required is less than originally
// requested. For example, you may have created a buffer with 10K of data,
// but decided to only fill 10 bytes of that data. Use this function
// to trim the buffer so that we don't send 9990 bytes of unused data.
// You cannot increase the size of the variable buffer; only shrink it.
// This function assumes that the length of the variable buffer has
// not been changed.
void TrimWriteData(int length);
// Reserves space for upcoming writes when multiple writes will be made and
// their sizes are computed in advance. It can be significantly faster to call
// Reserve() before calling WriteFoo() multiple times.
@ -358,7 +337,6 @@ class BASE_EXPORT Pickle {
size_t header_size_; // Supports extra data between header and payload.
// Allocation size of payload (or -1 if allocation is const).
size_t capacity_;
size_t variable_buffer_offset_; // IF non-zero, then offset to a buffer.
FRIEND_TEST_ALL_PREFIXES(PickleTest, Resize);
FRIEND_TEST_ALL_PREFIXES(PickleTest, FindNext);

@ -58,10 +58,6 @@ void VerifyResult(const Pickle& pickle) {
EXPECT_EQ(testdatalen, outdatalen);
EXPECT_EQ(memcmp(testdata, outdata, outdatalen), 0);
EXPECT_TRUE(pickle.ReadData(&iter, &outdata, &outdatalen));
EXPECT_EQ(testdatalen, outdatalen);
EXPECT_EQ(memcmp(testdata, outdata, outdatalen), 0);
// reads past the end should fail
EXPECT_FALSE(pickle.ReadInt(&iter, &outint));
}
@ -79,14 +75,6 @@ TEST(PickleTest, EncodeDecode) {
EXPECT_TRUE(pickle.WriteUInt16(testuint16));
EXPECT_TRUE(pickle.WriteFloat(testfloat));
EXPECT_TRUE(pickle.WriteData(testdata, testdatalen));
// Over allocate BeginWriteData so we can test TrimWriteData.
char* dest = pickle.BeginWriteData(testdatalen + 100);
EXPECT_TRUE(dest);
memcpy(dest, testdata, testdatalen);
pickle.TrimWriteData(testdatalen);
VerifyResult(pickle);
// test copy constructor