Merge changes I38c76bb2,I81a55e92 am: 3aaca7dd60 am: 803e6a71f8
am: 1e9bd2d6e1
Change-Id: I57a8ca74e8ac4e61d42348b8c6a454ab1aa251cf
diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp
index fa95733..1ecf99c 100644
--- a/logd/LogBuffer.cpp
+++ b/logd/LogBuffer.cpp
@@ -508,7 +508,8 @@
LogBufferElementCollection::iterator it;
if (caller_uid != AID_ROOT) {
- // Only here if clearAll condition (pruneRows == ULONG_MAX)
+ // Only here if clear all request from non system source, so chatty
+ // filter logistics is not required.
it = mLastSet[id] ? mLast[id] : mLogElements.begin();
while (it != mLogElements.end()) {
LogBufferElement *element = *it;
@@ -534,7 +535,9 @@
}
it = erase(it);
- pruneRows--;
+ if (--pruneRows == 0) {
+ break;
+ }
}
LogTimeEntry::unlock();
return busy;
@@ -678,7 +681,7 @@
&& ((!gc && (element->getPid() == worstPid))
|| (mLastWorstPidOfSystem[id].find(element->getPid())
== mLastWorstPidOfSystem[id].end()))) {
- mLastWorstPidOfSystem[id][key] = it;
+ mLastWorstPidOfSystem[id][element->getPid()] = it;
}
if ((!gc && !worstPid && (key == worst))
|| (mLastWorst[id].find(key) == mLastWorst[id].end())) {