Add two helper functions. NFC.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 8 Dec 2016 15:56:33 +0000 (15:56 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 8 Dec 2016 15:56:33 +0000 (15:56 +0000)
llvm-svn: 289064

lld/ELF/SymbolTable.cpp
lld/ELF/SymbolTable.h

index 1927f7a..d49824c 100644 (file)
@@ -594,6 +594,15 @@ ArrayRef<SymbolBody *> SymbolTable<ELFT>::findDemangled(StringRef Name) {
 }
 
 template <class ELFT>
+std::vector<SymbolBody *> SymbolTable<ELFT>::find(SymbolVersion Ver) {
+  if (Ver.IsExternCpp)
+    return findDemangled(Ver.Name);
+  std::vector<SymbolBody *> Syms;
+  Syms.push_back(find(Ver.Name));
+  return Syms;
+}
+
+template <class ELFT>
 std::vector<SymbolBody *>
 SymbolTable<ELFT>::findAllDemangled(StringRef GlobPat) {
   initDemangledSyms();
@@ -607,6 +616,11 @@ SymbolTable<ELFT>::findAllDemangled(StringRef GlobPat) {
   return Res;
 }
 
+template <class ELFT>
+std::vector<SymbolBody *> SymbolTable<ELFT>::findAll(SymbolVersion Ver) {
+  return Ver.IsExternCpp ? findAllDemangled(Ver.Name) : findAll(Ver.Name);
+}
+
 // If there's only one anonymous version definition in a version
 // script file, the script does not actually define any symbol version,
 // but just specifies symbols visibilities. We assume that the script was
@@ -633,11 +647,7 @@ void SymbolTable<ELFT>::assignExactVersion(SymbolVersion Ver, uint16_t VersionId
     return;
 
   // Get a list of symbols which we need to assign the version to.
-  std::vector<SymbolBody *> Syms;
-  if (Ver.IsExternCpp)
-    Syms = findDemangled(Ver.Name);
-  else
-    Syms.push_back(find(Ver.Name));
+  std::vector<SymbolBody *> Syms = find(Ver);
 
   // Assign the version.
   for (SymbolBody *B : Syms) {
@@ -659,8 +669,7 @@ void SymbolTable<ELFT>::assignWildcardVersion(SymbolVersion Ver,
                                               uint16_t VersionId) {
   if (!Ver.HasWildcard)
     return;
-  std::vector<SymbolBody *> Syms =
-      Ver.IsExternCpp ? findAllDemangled(Ver.Name) : findAll(Ver.Name);
+  std::vector<SymbolBody *> Syms = findAll(Ver);
 
   // Exact matching takes precendence over fuzzy matching,
   // so we set a version to a symbol only if no version has been assigned
index 8c97a00..5f72624 100644 (file)
@@ -99,7 +99,9 @@ private:
                                    InputFile *File);
 
   ArrayRef<SymbolBody *> findDemangled(StringRef Name);
+  std::vector<SymbolBody *> find(SymbolVersion Ver);
   std::vector<SymbolBody *> findAllDemangled(StringRef GlobPat);
+  std::vector<SymbolBody *> findAll(SymbolVersion Ver);
 
   void initDemangledSyms();
   void handleAnonymousVersion();