summaryrefslogtreecommitdiffstats
path: root/base/pickle.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/pickle.cc')
-rw-r--r--base/pickle.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/base/pickle.cc b/base/pickle.cc
index 31bf5b7..0be89c2 100644
--- a/base/pickle.cc
+++ b/base/pickle.cc
@@ -65,6 +65,10 @@ Pickle::~Pickle() {
}
Pickle& Pickle::operator=(const Pickle& other) {
+ if (this == &other) {
+ NOTREACHED();
+ return *this;
+ }
if (capacity_ == kCapacityReadOnly) {
header_ = NULL;
capacity_ = 0;
@@ -74,9 +78,10 @@ Pickle& Pickle::operator=(const Pickle& other) {
header_ = NULL;
header_size_ = other.header_size_;
}
- bool resized = Resize(header_size_ + other.header_->payload_size);
+ bool resized = Resize(other.header_size_ + other.header_->payload_size);
CHECK(resized); // Realloc failed.
- memcpy(header_, other.header_, header_size_ + other.header_->payload_size);
+ memcpy(header_, other.header_,
+ other.header_size_ + other.header_->payload_size);
variable_buffer_offset_ = other.variable_buffer_offset_;
return *this;
}