Simplify now that there is only one file. NFC.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 24 Apr 2015 19:01:30 +0000 (19:01 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 24 Apr 2015 19:01:30 +0000 (19:01 +0000)
llvm-svn: 235747

lld/lib/Driver/DarwinLdDriver.cpp
lld/lib/ReaderWriter/FileArchive.cpp
lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp

index db097da..86df20a 100644 (file)
@@ -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<std::unique_ptr<File>> files;
-  files.push_back(std::move(fileOrErr.get()));
-  for (std::unique_ptr<File> &pf : files) {
-    // If file is a dylib, inform LinkingContext about it.
-    if (SharedLibraryFile *shl = dyn_cast<SharedLibraryFile>(pf.get())) {
-      if (std::error_code ec = shl->parse())
-        return makeErrorFile(path, ec);
-      ctx.registerDylib(reinterpret_cast<mach_o::MachODylibFile*>(shl),
-                        upwardDylib);
-    }
+  std::unique_ptr<File> &file = fileOrErr.get();
+
+  // If file is a dylib, inform LinkingContext about it.
+  if (SharedLibraryFile *shl = dyn_cast<SharedLibraryFile>(file.get())) {
+    if (std::error_code ec = shl->parse())
+      return makeErrorFile(path, ec);
+    ctx.registerDylib(reinterpret_cast<mach_o::MachODylibFile *>(shl),
+                      upwardDylib);
   }
+  std::vector<std::unique_ptr<File>> files;
+  files.push_back(std::move(file));
   if (wholeArchive)
     return parseMemberFiles(files);
   return files;
index 2128d85..b1ff13d 100644 (file)
@@ -177,10 +177,7 @@ private:
         _registry.loadFile(std::move(memberMB));
     if (std::error_code ec = fileOrErr.getError())
       return ec;
-    std::vector<std::unique_ptr<File>> 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());
index 4408bea..c071f80 100644 (file)
@@ -627,13 +627,11 @@ MachODylibFile* MachOLinkingContext::loadIndirectDylib(StringRef path) {
       registry().loadFile(std::move(mbOrErr.get()));
   if (!fileOrErr)
     return nullptr;
-  std::vector<std::unique_ptr<File>> files;
-  files.push_back(std::move(fileOrErr.get()));
-  assert(files.size() == 1 && "expected one file in dylib");
-  files[0]->parse();
-  MachODylibFile* result = reinterpret_cast<MachODylibFile*>(files[0].get());
+  std::unique_ptr<File> &file = fileOrErr.get();
+  file->parse();
+  MachODylibFile *result = reinterpret_cast<MachODylibFile *>(file.get());
   // Node object now owned by _indirectDylibs vector.
-  _indirectDylibs.push_back(std::move(files[0]));
+  _indirectDylibs.push_back(std::move(file));
   return result;
 }