adb: properly erase destroyed jdwp_trackers.
std::remove_if moves to-be-removed elements to the end of the vector
and returns an iterator that must be .erased.
Bug: http://b/35772578
Test: mma
Change-Id: Idfe8520e176204ac5ce000c30704873a3ffe6c9c
diff --git a/adb/jdwp_service.cpp b/adb/jdwp_service.cpp
index 3135aa4..9589d88 100644
--- a/adb/jdwp_service.cpp
+++ b/adb/jdwp_service.cpp
@@ -571,7 +571,8 @@
remove_socket(s);
auto pred = [s](const auto& tracker) { return tracker.get() == s; };
- std::remove_if(_jdwp_trackers.begin(), _jdwp_trackers.end(), pred);
+ _jdwp_trackers.erase(std::remove_if(_jdwp_trackers.begin(), _jdwp_trackers.end(), pred),
+ _jdwp_trackers.end());
}
static void jdwp_tracker_ready(asocket* s) {