diff options
-rw-r--r-- | linker/linker.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp index 8e7a1411c..201e187c3 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -1776,6 +1776,9 @@ static void soinfo_unload(soinfo* soinfos[], size_t count) { 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 if (child->get_parents().empty()) { unload_list.push_back(child); |