Merge branch 'cyclic-unload' into 'master'

Fix dynamic linker hitting unwrap

See merge request redox-os/relibc!1067
This commit is contained in:
Jeremy Soller
2026-03-05 09:17:03 -07:00
+5 -6
View File
@@ -561,12 +561,11 @@ impl Linker {
let _ = self.objects.remove(&obj.id).unwrap();
for dep in obj.dependencies() {
self.unload(ObjectHandle::new(
self.objects
.get(self.name_to_object_id_map.get(*dep).unwrap())
.unwrap()
.clone(),
));
if let Some(name) = self.name_to_object_id_map.get(*dep) {
if let Some(object_name) = self.objects.get(name) {
self.unload(ObjectHandle::new(object_name.clone()));
}
}
}
self.name_to_object_id_map.remove(&obj.name);
assert!(Arc::strong_count(&obj) == 1);