Fix a bug in vector reverse iteration.
Bug: 73264895
Test: statsd_test and locally built statsd with
LOCAL_CLANG:=true
LOCAL_SANITIZE:=address
Change-Id: Ifb8e04c5b4908446f553169846a3226db6e02f54
This commit is contained in:
@@ -241,10 +241,10 @@ void LogEvent::init(android_log_context context) {
|
||||
// So that we can later easily match them with Position=Last matchers.
|
||||
pos[prevDepth]--;
|
||||
int path = getEncodedField(pos, prevDepth, false);
|
||||
for (size_t j = mValues.size() - 1; j >= 0; j--) {
|
||||
if (mValues[j].mField.getDepth() >= prevDepth &&
|
||||
mValues[j].mField.getPath(prevDepth) == path) {
|
||||
mValues[j].mField.decorateLastPos(prevDepth);
|
||||
for (auto it = mValues.rbegin(); it != mValues.rend(); ++it) {
|
||||
if (it->mField.getDepth() >= prevDepth &&
|
||||
it->mField.getPath(prevDepth) == path) {
|
||||
it->mField.decorateLastPos(prevDepth);
|
||||
} else {
|
||||
// Safe to break, because the items are in DFS order.
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user