summaryrefslogtreecommitdiff
path: root/logd/SerializedLogChunk.cpp
diff options
context:
space:
mode:
authorTom Cherry <tomcherry@google.com>2020-07-17 17:30:01 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-07-17 17:30:01 +0000
commite781da96b51abdce32e8795dd2aca1de223b625e (patch)
tree00a3d40cff212d18c693e5dae05fa23afc0e174e /logd/SerializedLogChunk.cpp
parentce95e551045e0b391fa0aff35814c7ee8f2009ea (diff)
parente7e77f71c4de51d600f467be59e1d762a682149a (diff)
Merge "logd: always compress SerializedLogChunk in FinishWriting()" am: aa0358b8fe am: e7e77f71c4
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1365225 Change-Id: I8e86c68e53270f411016e0a8489e0417334c09b7
Diffstat (limited to 'logd/SerializedLogChunk.cpp')
-rw-r--r--logd/SerializedLogChunk.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/logd/SerializedLogChunk.cpp b/logd/SerializedLogChunk.cpp
index e444856a4..de641d62a 100644
--- a/logd/SerializedLogChunk.cpp
+++ b/logd/SerializedLogChunk.cpp
@@ -31,7 +31,6 @@ void SerializedLogChunk::Compress() {
<< " size used: " << write_offset_
<< " compressed size: " << compressed_log_.size();
}
- contents_.Resize(0);
}
// TODO: Develop a better reference counting strategy to guard against the case where the writer is
@@ -44,13 +43,13 @@ void SerializedLogChunk::IncReaderRefCount() {
CompressionEngine::GetInstance().Decompress(compressed_log_, contents_);
}
-void SerializedLogChunk::DecReaderRefCount(bool compress) {
+void SerializedLogChunk::DecReaderRefCount() {
CHECK_NE(reader_ref_count_, 0U);
if (--reader_ref_count_ != 0) {
return;
}
- if (compress && !writer_active_) {
- Compress();
+ if (!writer_active_) {
+ contents_.Resize(0);
}
}
@@ -83,18 +82,19 @@ bool SerializedLogChunk::ClearUidLogs(uid_t uid, log_id_t log_id, LogStatistics*
}
if (new_write_offset == 0) {
- DecReaderRefCount(false);
+ DecReaderRefCount();
return true;
}
- // Clear the old compressed logs and set write_offset_ appropriately for DecReaderRefCount()
- // to compress the new partially cleared log.
+ // Clear the old compressed logs and set write_offset_ appropriately to compress the new
+ // partially cleared log.
if (new_write_offset != write_offset_) {
compressed_log_.Resize(0);
write_offset_ = new_write_offset;
+ Compress();
}
- DecReaderRefCount(true);
+ DecReaderRefCount();
return false;
}