Merge "Move "adb shell" over to getopt(3), and allow -tt on old devices."
diff --git a/libion/ion.c b/libion/ion.c
index 4565efb..2db8845 100644
--- a/libion/ion.c
+++ b/libion/ion.c
@@ -34,7 +34,7 @@
int ion_open()
{
- int fd = open("/dev/ion", O_RDWR);
+ int fd = open("/dev/ion", O_RDONLY);
if (fd < 0)
ALOGE("open /dev/ion failed!\n");
return fd;
diff --git a/libion/tests/device_test.cpp b/libion/tests/device_test.cpp
index 0be52bf..eb3f7b6 100644
--- a/libion/tests/device_test.cpp
+++ b/libion/tests/device_test.cpp
@@ -46,7 +46,7 @@
void Device::SetUp()
{
IonAllHeapsTest::SetUp();
- m_deviceFd = open("/dev/ion-test", O_RDWR);
+ m_deviceFd = open("/dev/ion-test", O_RDONLY);
ASSERT_GE(m_deviceFd, 0);
}
diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp
index 5554d53..aff8a46 100644
--- a/logd/LogBuffer.cpp
+++ b/logd/LogBuffer.cpp
@@ -222,6 +222,9 @@
LogBufferElement *element = *it;
log_id_t id = element->getLogId();
+ // Remove iterator references in the various lists that will become stale
+ // after the element is erased from the main logging list.
+
{ // start of scope for found iterator
int key = ((id == LOG_ID_EVENTS) || (id == LOG_ID_SECURITY)) ?
element->getTag() : element->getUid();
@@ -231,7 +234,8 @@
}
}
- if ((id != LOG_ID_EVENTS) && (id != LOG_ID_SECURITY) && (element->getUid() == AID_SYSTEM)) {
+ if ((id != LOG_ID_EVENTS) && (id != LOG_ID_SECURITY)) {
+ // element->getUid() may not be AID_SYSTEM for next-best-watermark.
// start of scope for pid found iterator
LogBufferPidIteratorMap::iterator found =
mLastWorstPidOfSystem[id].find(element->getPid());
@@ -501,7 +505,7 @@
it = found->second;
}
}
- if (worstPid) {
+ if (worstPid) { // Only set if !LOG_ID_EVENTS and !LOG_ID_SECURITY
// begin scope for pid worst found iterator
LogBufferPidIteratorMap::iterator found
= mLastWorstPidOfSystem[id].find(worstPid);
@@ -534,6 +538,7 @@
++it;
continue;
}
+ // below this point element->getLogId() == id
if (leading && (!mLastSet[id] || ((*mLast[id])->getLogId() != id))) {
mLast[id] = it;
@@ -590,6 +595,8 @@
&& ((!gc && (element->getPid() == worstPid))
|| (mLastWorstPidOfSystem[id].find(element->getPid())
== mLastWorstPidOfSystem[id].end()))) {
+ // element->getUid() may not be AID_SYSTEM, next best
+ // watermark if current one empty.
mLastWorstPidOfSystem[id][element->getPid()] = it;
}
if ((!gc && !worstPid && (key == worst))
@@ -607,6 +614,8 @@
++it;
continue;
}
+ // key == worst below here
+ // If worstPid set, then element->getPid() == worstPid below here
pruneRows--;
if (pruneRows == 0) {
@@ -630,6 +639,8 @@
if (worstPid && (!gc
|| (mLastWorstPidOfSystem[id].find(worstPid)
== mLastWorstPidOfSystem[id].end()))) {
+ // element->getUid() may not be AID_SYSTEM, next best
+ // watermark if current one empty.
mLastWorstPidOfSystem[id][worstPid] = it;
}
if ((!gc && !worstPid) ||