Inline two single-use templates.

Change-Id: Ie1b22479128f9a4b8ece08a433ee5943a1d04c11
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 0b829b3..e538a48 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1102,15 +1102,6 @@
   return dt_needed;
 }
 
-template<typename F>
-static void for_each_dt_needed(const ElfReader& elf_reader, F action) {
-  for (const ElfW(Dyn)* d = elf_reader.dynamic(); d->d_tag != DT_NULL; ++d) {
-    if (d->d_tag == DT_NEEDED) {
-      action(fix_dt_needed(elf_reader.get_string(d->d_un.d_val), elf_reader.name()));
-    }
-  }
-}
-
 static bool find_loaded_library_by_inode(android_namespace_t* ns,
                                          const struct stat& file_stat,
                                          off64_t file_offset,
@@ -1307,11 +1298,14 @@
   }
 #endif
 
-  for_each_dt_needed(task->get_elf_reader(), [&](const char* name) {
-    LD_LOG(kLogDlopen, "load_library(ns=%s, task=%s): Adding DT_NEEDED task: %s",
-           ns->get_name(), task->get_name(), name);
-    load_tasks->push_back(LoadTask::create(name, si, ns, task->get_readers_map()));
-  });
+  for (const ElfW(Dyn)* d = elf_reader.dynamic(); d->d_tag != DT_NULL; ++d) {
+    if (d->d_tag == DT_NEEDED) {
+      const char* name = fix_dt_needed(elf_reader.get_string(d->d_un.d_val), elf_reader.name());
+      LD_LOG(kLogDlopen, "load_library(ns=%s, task=%s): Adding DT_NEEDED task: %s",
+             ns->get_name(), task->get_name(), name);
+      load_tasks->push_back(LoadTask::create(name, si, ns, task->get_readers_map()));
+    }
+  }
 
   return true;
 }
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp
index f65f82d..40f6b9a 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -435,9 +435,12 @@
     ++ld_preloads_count;
   }
 
-  for_each_dt_needed(si, [&](const char* name) {
-    needed_library_name_list.push_back(name);
-  });
+  for (const ElfW(Dyn)* d = si->dynamic; d->d_tag != DT_NULL; ++d) {
+    if (d->d_tag == DT_NEEDED) {
+      const char* name = fix_dt_needed(si->get_string(d->d_un.d_val), si->get_realpath());
+      needed_library_name_list.push_back(name);
+    }
+  }
 
   const char** needed_library_names = &needed_library_name_list[0];
   size_t needed_libraries_count = needed_library_name_list.size();
diff --git a/linker/linker_soinfo.h b/linker/linker_soinfo.h
index 4d02676..37cee50 100644
--- a/linker/linker_soinfo.h
+++ b/linker/linker_soinfo.h
@@ -524,14 +524,5 @@
 
 const char* fix_dt_needed(const char* dt_needed, const char* sopath);
 
-template<typename F>
-void for_each_dt_needed(const soinfo* si, F action) {
-  for (const ElfW(Dyn)* d = si->dynamic; d->d_tag != DT_NULL; ++d) {
-    if (d->d_tag == DT_NEEDED) {
-      action(fix_dt_needed(si->get_string(d->d_un.d_val), si->get_realpath()));
-    }
-  }
-}
-
 const ElfW(Sym)* soinfo_do_lookup(const char* name, const version_info* vi,
                                   soinfo** si_found_in, const SymbolLookupList& lookup_list);