From: Rafael Espindola Date: Fri, 24 Apr 2015 19:01:30 +0000 (+0000) Subject: Simplify now that there is only one file. NFC. X-Git-Tag: llvmorg-3.7.0-rc1~6041 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=773a15911652df239ca4886396df298a224f19b6;p=platform%2Fupstream%2Fllvm.git Simplify now that there is only one file. NFC. llvm-svn: 235747 --- diff --git a/lld/lib/Driver/DarwinLdDriver.cpp b/lld/lib/Driver/DarwinLdDriver.cpp index db097da..86df20a 100644 --- a/lld/lib/Driver/DarwinLdDriver.cpp +++ b/lld/lib/Driver/DarwinLdDriver.cpp @@ -84,17 +84,17 @@ loadFile(MachOLinkingContext &ctx, StringRef path, ctx.registry().loadFile(std::move(mbOrErr.get())); if (std::error_code ec = fileOrErr.getError()) return makeErrorFile(path, ec); - std::vector> files; - files.push_back(std::move(fileOrErr.get())); - for (std::unique_ptr &pf : files) { - // If file is a dylib, inform LinkingContext about it. - if (SharedLibraryFile *shl = dyn_cast(pf.get())) { - if (std::error_code ec = shl->parse()) - return makeErrorFile(path, ec); - ctx.registerDylib(reinterpret_cast(shl), - upwardDylib); - } + std::unique_ptr &file = fileOrErr.get(); + + // If file is a dylib, inform LinkingContext about it. + if (SharedLibraryFile *shl = dyn_cast(file.get())) { + if (std::error_code ec = shl->parse()) + return makeErrorFile(path, ec); + ctx.registerDylib(reinterpret_cast(shl), + upwardDylib); } + std::vector> files; + files.push_back(std::move(file)); if (wholeArchive) return parseMemberFiles(files); return files; diff --git a/lld/lib/ReaderWriter/FileArchive.cpp b/lld/lib/ReaderWriter/FileArchive.cpp index 2128d85..b1ff13d 100644 --- a/lld/lib/ReaderWriter/FileArchive.cpp +++ b/lld/lib/ReaderWriter/FileArchive.cpp @@ -177,10 +177,7 @@ private: _registry.loadFile(std::move(memberMB)); if (std::error_code ec = fileOrErr.getError()) return ec; - std::vector> files; - files.push_back(std::move(fileOrErr.get())); - assert(files.size() == 1); - result = std::move(files[0]); + result = std::move(fileOrErr.get()); if (std::error_code ec = result->parse()) return ec; result->setArchivePath(_archive->getFileName()); diff --git a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp index 4408bea..c071f80 100644 --- a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp +++ b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp @@ -627,13 +627,11 @@ MachODylibFile* MachOLinkingContext::loadIndirectDylib(StringRef path) { registry().loadFile(std::move(mbOrErr.get())); if (!fileOrErr) return nullptr; - std::vector> files; - files.push_back(std::move(fileOrErr.get())); - assert(files.size() == 1 && "expected one file in dylib"); - files[0]->parse(); - MachODylibFile* result = reinterpret_cast(files[0].get()); + std::unique_ptr &file = fileOrErr.get(); + file->parse(); + MachODylibFile *result = reinterpret_cast(file.get()); // Node object now owned by _indirectDylibs vector. - _indirectDylibs.push_back(std::move(files[0])); + _indirectDylibs.push_back(std::move(file)); return result; }