[lld] r205593 - Do not use temporary variables to pass them to forEachUndefines.

Rui Ueyama ruiu at google.com
Thu Apr 3 17:39:37 PDT 2014


Author: ruiu
Date: Thu Apr  3 19:39:37 2014
New Revision: 205593

URL: http://llvm.org/viewvc/llvm-project?rev=205593&view=rev
Log:
Do not use temporary variables to pass them to forEachUndefines.

So that it's obvious that we pass these callbacks only to forEachUndefines.

Modified:
    lld/trunk/include/lld/Core/Resolver.h
    lld/trunk/lib/Core/Resolver.cpp

Modified: lld/trunk/include/lld/Core/Resolver.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Resolver.h?rev=205593&r1=205592&r2=205593&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/Resolver.h (original)
+++ lld/trunk/include/lld/Core/Resolver.h Thu Apr  3 19:39:37 2014
@@ -65,7 +65,7 @@ private:
   bool checkUndefines();
   void removeCoalescedAwayAtoms();
   void checkDylibSymbolCollisions();
-  void forEachUndefines(UndefCallback callback, bool searchForOverrides);
+  void forEachUndefines(bool searchForOverrides, UndefCallback callback);
 
   void markLive(const Atom &atom);
   void addAtoms(const std::vector<const DefinedAtom *>&);

Modified: lld/trunk/lib/Core/Resolver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Resolver.cpp?rev=205593&r1=205592&r2=205593&view=diff
==============================================================================
--- lld/trunk/lib/Core/Resolver.cpp (original)
+++ lld/trunk/lib/Core/Resolver.cpp Thu Apr  3 19:39:37 2014
@@ -68,8 +68,8 @@ void Resolver::handleFile(const File &fi
   _context.getInputGraph().notifyProgress();
 }
 
-void Resolver::forEachUndefines(UndefCallback callback,
-                                bool searchForOverrides) {
+void Resolver::forEachUndefines(bool searchForOverrides,
+                                UndefCallback callback) {
   // Handle normal archives
   int64_t undefineGenCount = 0;
   do {
@@ -99,30 +99,29 @@ void Resolver::forEachUndefines(UndefCal
 
 void Resolver::handleArchiveFile(const File &file) {
   const ArchiveLibraryFile *archiveFile = cast<ArchiveLibraryFile>(&file);
-  auto callback = [&](StringRef undefName, bool dataSymbolOnly) {
+  bool searchForOverrides =
+      _context.searchArchivesToOverrideTentativeDefinitions();
+  forEachUndefines(searchForOverrides,
+                   [&](StringRef undefName, bool dataSymbolOnly) {
     if (const File *member = archiveFile->find(undefName, dataSymbolOnly)) {
       member->setOrdinal(_context.getNextOrdinalAndIncrement());
       handleFile(*member);
     }
-  };
-  bool searchForOverrides =
-      _context.searchArchivesToOverrideTentativeDefinitions();
-  forEachUndefines(callback, searchForOverrides);
+  });
 }
 
 void Resolver::handleSharedLibrary(const File &file) {
   // Add all the atoms from the shared library
   const SharedLibraryFile *sharedLibrary = cast<SharedLibraryFile>(&file);
   handleFile(*sharedLibrary);
-
-  auto callback = [&](StringRef undefName, bool dataSymbolOnly) {
-    if (const SharedLibraryAtom *shAtom =
-            sharedLibrary->exports(undefName, dataSymbolOnly))
-      doSharedLibraryAtom(*shAtom);
-  };
   bool searchForOverrides =
       _context.searchSharedLibrariesToOverrideTentativeDefinitions();
-  forEachUndefines(callback, searchForOverrides);
+  forEachUndefines(searchForOverrides,
+                   [&](StringRef undefName, bool dataSymbolOnly) {
+    if (const SharedLibraryAtom *atom =
+            sharedLibrary->exports(undefName, dataSymbolOnly))
+      doSharedLibraryAtom(*atom);
+  });
 }
 
 void Resolver::doUndefinedAtom(const UndefinedAtom &atom) {





More information about the llvm-commits mailing list