Merge "Update codebase with static analysis result"
diff --git a/contents/namespace/vndk.cc b/contents/namespace/vndk.cc
index 12981ea..02c04ba 100644
--- a/contents/namespace/vndk.cc
+++ b/contents/namespace/vndk.cc
@@ -50,7 +50,6 @@
                /*is_visible=*/is_system_or_unrestricted_section);
 
   std::vector<std::string> lib_paths;
-  std::vector<std::string> vndk_paths;
   std::string vndk_version;
   if (vndk_user == VndkUserPartition::Product) {
     lib_paths = {Var("PRODUCT") + "/${LIB}"};
diff --git a/contents/tests/backward_compatibility/testbase.h b/contents/tests/backward_compatibility/testbase.h
index ee58aa6..6b386ba 100644
--- a/contents/tests/backward_compatibility/testbase.h
+++ b/contents/tests/backward_compatibility/testbase.h
@@ -17,10 +17,13 @@
 
 #include <android-base/strings.h>
 
+#include <algorithm>
+
 #include "linkerconfig/namespace.h"
 #include "linkerconfig/variables.h"
 
-inline void MockVndkVariables(std::string partition, std::string vndk_ver) {
+inline void MockVndkVariables(const std::string& partition,
+                              const std::string& vndk_ver) {
   using android::linkerconfig::modules::Variables;
 
   Variables::AddValue(partition + "_VNDK_VERSION", vndk_ver);
@@ -55,13 +58,9 @@
 
 inline bool ContainsPath(const std::vector<std::string>& path_list,
                          const std::string& path) {
-  for (auto item : path_list) {
-    if (item == path) {
-      return true;
-    }
-  }
-
-  return false;
+  return std::any_of(path_list.begin(),
+                     path_list.end(),
+                     [&](const std::string& item) { return item == path; });
 }
 
 inline bool ContainsSearchPath(
diff --git a/generator/include/linkerconfig/librarylistloader.h b/generator/include/linkerconfig/librarylistloader.h
index 4f0cd63..ee64d96 100644
--- a/generator/include/linkerconfig/librarylistloader.h
+++ b/generator/include/linkerconfig/librarylistloader.h
@@ -21,11 +21,13 @@
 namespace android {
 namespace linkerconfig {
 namespace generator {
-std::string GetLibrariesString(std::string library_file_path);
-std::string GetPublicLibrariesString(std::string library_file_path,
-                                     std::string private_library_file_path);
-std::string GetPrivateLibrariesString(std::string library_file_path,
-                                      std::string private_library_file_path);
+std::string GetLibrariesString(const std::string& library_file_path);
+std::string GetPublicLibrariesString(
+    const std::string& library_file_path,
+    const std::string& private_library_file_path);
+std::string GetPrivateLibrariesString(
+    const std::string& library_file_path,
+    const std::string& private_library_file_path);
 }  // namespace generator
 }  // namespace linkerconfig
 }  // namespace android
diff --git a/generator/librarylistloader.cc b/generator/librarylistloader.cc
index afd3dd8..60d0430 100644
--- a/generator/librarylistloader.cc
+++ b/generator/librarylistloader.cc
@@ -64,7 +64,7 @@
 namespace android {
 namespace linkerconfig {
 namespace generator {
-std::string GetLibrariesString(std::string library_file_path) {
+std::string GetLibrariesString(const std::string& library_file_path) {
   auto library_list_result = GetLibrariesFromFile(library_file_path);
   if (library_list_result.ok()) {
     return android::base::Join(*library_list_result, ':');
@@ -75,8 +75,9 @@
   }
 }
 
-std::string GetPublicLibrariesString(std::string library_file_path,
-                                     std::string private_library_file_path) {
+std::string GetPublicLibrariesString(
+    const std::string& library_file_path,
+    const std::string& private_library_file_path) {
   auto library_list = GetLibrariesFromFile(library_file_path);
   auto private_library_list = GetLibrariesFromFile(private_library_file_path);
 
@@ -104,8 +105,9 @@
   return android::base::Join(public_library_list, ':');
 }
 
-std::string GetPrivateLibrariesString(std::string library_file_path,
-                                      std::string private_library_file_path) {
+std::string GetPrivateLibrariesString(
+    const std::string& library_file_path,
+    const std::string& private_library_file_path) {
   auto library_list = GetLibrariesFromFile(library_file_path);
   auto private_library_list = GetLibrariesFromFile(private_library_file_path);
 
diff --git a/main.cc b/main.cc
index 3375db0..83440ec 100644
--- a/main.cc
+++ b/main.cc
@@ -212,7 +212,8 @@
   return android::linkerconfig::contents::CreateBaseConfiguration(ctx);
 }
 
-Result<void> GenerateConfiguration(Configuration config, std::string dir_path,
+Result<void> GenerateConfiguration(Configuration config,
+                                   const std::string& dir_path,
                                    bool update_permission) {
   std::string file_path = "";
   if (dir_path != "") {
diff --git a/modules/namespace.cc b/modules/namespace.cc
index ec32882..257bb3f 100644
--- a/modules/namespace.cc
+++ b/modules/namespace.cc
@@ -18,6 +18,8 @@
 
 #include <android-base/strings.h>
 
+#include <algorithm>
+
 #include "linkerconfig/apex.h"
 #include "linkerconfig/log.h"
 
@@ -64,9 +66,10 @@
   if (!links_.empty()) {
     std::vector<std::string> link_list;
     link_list.reserve(links_.size());
-    for (const auto& link : links_) {
-      link_list.push_back(link.To());
-    }
+    std::transform(links_.begin(),
+                   links_.end(),
+                   std::back_inserter(link_list),
+                   [&](const auto& link) { return link.To(); });
     writer.WriteLine(prefix + "links = " + android::base::Join(link_list, ","));
 
     for (const auto& link : links_) {
diff --git a/modules/tests/apex_testbase.h b/modules/tests/apex_testbase.h
index 1531c20..7f98d02 100644
--- a/modules/tests/apex_testbase.h
+++ b/modules/tests/apex_testbase.h
@@ -55,7 +55,7 @@
         << "Failed to create a directory: " << dir_path;
   }
 
-  void WriteFile(std::string file, std::string content) {
+  void WriteFile(const std::string& file, const std::string& content) {
     std::string file_path = root + file;
     Mkdir(::android::base::Dirname(file_path));
     ASSERT_TRUE(::android::base::WriteStringToFile(content, file_path))
diff --git a/modules/tests/modules_testbase.h b/modules/tests/modules_testbase.h
index 36ee44c..589dea6 100644
--- a/modules/tests/modules_testbase.h
+++ b/modules/tests/modules_testbase.h
@@ -19,8 +19,8 @@
 
 using namespace android::linkerconfig::modules;
 
-inline Namespace CreateNamespaceWithPaths(std::string name, bool is_isolated,
-                                          bool is_visible) {
+inline Namespace CreateNamespaceWithPaths(const std::string& name,
+                                          bool is_isolated, bool is_visible) {
   Namespace ns(name, is_isolated, is_visible);
   ns.AddSearchPath("/search_path1");
   ns.AddSearchPath("/apex/search_path2");
@@ -30,9 +30,10 @@
   return ns;
 }
 
-inline Namespace CreateNamespaceWithLinks(std::string name, bool is_isolated,
-                                          bool is_visible, std::string target_1,
-                                          std::string target_2) {
+inline Namespace CreateNamespaceWithLinks(const std::string& name,
+                                          bool is_isolated, bool is_visible,
+                                          const std::string& target_1,
+                                          const std::string& target_2) {
   Namespace ns = CreateNamespaceWithPaths(name, is_isolated, is_visible);
   auto& link = ns.GetLink(target_1);
   link.AddSharedLib("lib1.so", "lib2.so", "lib3.so");