diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-08 18:25:49 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-08 18:25:49 +0000 |
commit | 06f6466e11bf4fe85337e0a734d526cedcdf7241 (patch) | |
tree | 524bb87c28f7d9db90b7b506afa310c3a9566272 | |
parent | 96ba9f9e1a308cb9bb4c67f65b38500b48c4e55e (diff) | |
parent | 379003621a1d2c28c18b42236d1d61ce80c1e92a (diff) | |
download | bionic-android-6.0.1_r81.tar.gz |
Merge cherrypicks of [2379347, 2379239, 2379364, 2379160, 2379220, 2379290, 2379348, 2379328, 2379329, 2379349, 2379350, 2379365, 2379401, 2379351, 2379330, 2379313, 2379382, 2379275, 2379331, 2379352, 2379292, 2379314, 2379315, 2379402, 2379421, 2379369, 2379255, 2379317, 2379404, 2379279, 2379334, 2379372, 2379335] into mnc-mr2-releaseandroid-6.0.1_r81android-6.0.1_r80marshmallow-mr2-release
Change-Id: Icd8bad212b5a28ebb24fe7475eb3c2a214dc3a29
-rw-r--r-- | linker/linked_list.h | 6 | ||||
-rw-r--r-- | linker/linker.cpp | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/linker/linked_list.h b/linker/linked_list.h index 8003dbf84..0572e635b 100644 --- a/linker/linked_list.h +++ b/linker/linked_list.h @@ -127,7 +127,13 @@ class LinkedList { } else { p->next = next; } + + if (tail_ == e) { + tail_ = p; + } + Allocator::free(e); + e = next; } else { p = e; diff --git a/linker/linker.cpp b/linker/linker.cpp index d3ac1d000..19f5e94c4 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -1597,6 +1597,9 @@ static void soinfo_unload(soinfo* root) { if (local_unload_list.contains(child)) { continue; } else if (child->is_linked() && child->get_local_group_root() != root) { + child->get_parents().remove_if([&] (const soinfo* parent) { + return parent == si; + }); external_unload_list.push_back(child); } else { depth_first_list.push_front(child); |