There were 5 subclasses of ArchiveLibraryFile in total and two of them required the fix imo.
File object ownership is complicated, and I'm not sure if this fix is
correct. Leaking objects is a bug, but is this safe? Who keeps the
ownership of archive files until all linking is complete?
All archive files are ownered by LinkingContext. Files are added as nodes. (like that: ctx->getNodes().push_back(std::move(node));)
LinkingContext looks to be alive all time until link complete.