From: Dimitry Ivanov Date: Tue, 16 May 2017 22:21:22 +0000 (+0000) Subject: linker: remove link from external library on unload am: b37d10cc80 am: 3a644889b2... X-Git-Tag: android-x86-9.0-r1~591^2^2~32 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=efbc04475e1566e1565f2ca095473545c673edd5;p=android-x86%2Fbionic.git linker: remove link from external library on unload am: b37d10cc80 am: 3a644889b2 am: cb40eec87c am: 0399816edb am: 85efd3b591 Change-Id: I0b41cdffdccab8b79a4d9c6327dc0f6f521c1acf --- efbc04475e1566e1565f2ca095473545c673edd5 diff --cc linker/linker.cpp index 8e7a1411c,a043b859a..201e187c3 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@@ -1776,9 -2246,12 +1776,12 @@@ static void soinfo_unload(soinfo* soinf 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 { - unload_list.push_front(child); + } else if (child->get_parents().empty()) { + unload_list.push_back(child); } } } else {