From 8f7b9e3d39cdae8363816aa7bcbab0d79fd70cea Mon Sep 17 00:00:00 2001 From: Chih-Hung Hsieh Date: Wed, 27 Jul 2016 16:25:51 -0700 Subject: [PATCH] Fix clang-tidy performance warnings in syste/core. * Use const reference type for parameters to avoid unnecessary copy. * Suppress warning of not using faster overloaded string find function. Bug: 30407689 Bug: 30411878 Change-Id: I6cfdbbd50cf5e8f3db6e5263076d3a17a9a791ee Test: build with WITH_TIDY=1 Merged-In: Ie79dbe21899867bc62031f8618bb1322b8071525 --- adb/adb_utils_test.cpp | 2 +- adb/commandline.cpp | 5 +++-- adb/file_sync_client.cpp | 2 +- fastboot/fastboot.cpp | 4 ++-- fastboot/socket_test.cpp | 2 +- init/service.cpp | 2 +- init/service.h | 2 +- init/util.cpp | 2 +- init/util.h | 2 +- libbacktrace/backtrace_offline_test.cpp | 2 +- 10 files changed, 13 insertions(+), 12 deletions(-) diff --git a/adb/adb_utils_test.cpp b/adb/adb_utils_test.cpp index aabc5d733..9daa397d0 100644 --- a/adb/adb_utils_test.cpp +++ b/adb/adb_utils_test.cpp @@ -111,7 +111,7 @@ TEST(adb_utils, adb_dirname) { EXPECT_EQ("/system/bin", adb_dirname("/system/bin/sh/")); } -void test_mkdirs(const std::string basepath) { +void test_mkdirs(const std::string& basepath) { // Test creating a directory hierarchy. EXPECT_TRUE(mkdirs(basepath)); // Test finding an existing directory hierarchy. diff --git a/adb/commandline.cpp b/adb/commandline.cpp index 477edc1db..193b9294e 100644 --- a/adb/commandline.cpp +++ b/adb/commandline.cpp @@ -1275,9 +1275,10 @@ static std::string find_product_out_path(const std::string& hint) { return hint; } - // If there are any slashes in it, assume it's a relative path; + // If any of the OS_PATH_SEPARATORS is found, assume it's a relative path; // make it absolute. - if (hint.find_first_of(OS_PATH_SEPARATORS) != std::string::npos) { + // NOLINT: Do not complain if OS_PATH_SEPARATORS has only one character. + if (hint.find_first_of(OS_PATH_SEPARATORS) != std::string::npos) { // NOLINT std::string cwd; if (!getcwd(&cwd)) { fprintf(stderr, "adb: getcwd failed: %s\n", strerror(errno)); diff --git a/adb/file_sync_client.cpp b/adb/file_sync_client.cpp index 6a9e16371..fbca770f9 100644 --- a/adb/file_sync_client.cpp +++ b/adb/file_sync_client.cpp @@ -433,7 +433,7 @@ class SyncConnection { typedef void (sync_ls_cb)(unsigned mode, unsigned size, unsigned time, const char* name); static bool sync_ls(SyncConnection& sc, const char* path, - std::function func) { + const std::function& func) { if (!sc.SendRequest(ID_LIST, path)) return false; while (true) { diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp index 665b9d027..dde21d559 100644 --- a/fastboot/fastboot.cpp +++ b/fastboot/fastboot.cpp @@ -835,7 +835,7 @@ static std::string verify_slot(Transport* transport, const char *slot) { } static void do_for_partition(Transport* transport, const char *part, const char *slot, - std::function func, bool force_slot) { + const std::function& func, bool force_slot) { std::string has_slot; std::string current_slot; @@ -867,7 +867,7 @@ static void do_for_partition(Transport* transport, const char *part, const char * partition does not support slots. */ static void do_for_partitions(Transport* transport, const char *part, const char *slot, - std::function func, bool force_slot) { + const std::function& func, bool force_slot) { std::string has_slot; if (slot && strcmp(slot, "all") == 0) { diff --git a/fastboot/socket_test.cpp b/fastboot/socket_test.cpp index affbdfd88..373abc35e 100644 --- a/fastboot/socket_test.cpp +++ b/fastboot/socket_test.cpp @@ -34,7 +34,7 @@ static constexpr int kTestTimeoutMs = 3000; // Creates connected sockets |server| and |client|. Returns true on success. bool MakeConnectedSockets(Socket::Protocol protocol, std::unique_ptr* server, std::unique_ptr* client, - const std::string hostname = "localhost") { + const std::string& hostname = "localhost") { *server = Socket::NewServer(protocol, 0); if (*server == nullptr) { ADD_FAILURE() << "Failed to create server."; diff --git a/init/service.cpp b/init/service.cpp index f67af2d64..44d9d8c77 100644 --- a/init/service.cpp +++ b/init/service.cpp @@ -850,7 +850,7 @@ Service* ServiceManager::FindServiceByKeychord(int keychord_id) const { return nullptr; } -void ServiceManager::ForEachService(std::function callback) const { +void ServiceManager::ForEachService(const std::function& callback) const { for (const auto& s : services_) { callback(s.get()); } diff --git a/init/service.h b/init/service.h index aa73aaf84..fb03a0732 100644 --- a/init/service.h +++ b/init/service.h @@ -177,7 +177,7 @@ public: Service* FindServiceByName(const std::string& name) const; Service* FindServiceByPid(pid_t pid) const; Service* FindServiceByKeychord(int keychord_id) const; - void ForEachService(std::function callback) const; + void ForEachService(const std::function& callback) const; void ForEachServiceInClass(const std::string& classname, void (*func)(Service* svc)) const; void ForEachServiceWithFlags(unsigned matchflags, diff --git a/init/util.cpp b/init/util.cpp index 6c1923f8b..10ab1c73c 100644 --- a/init/util.cpp +++ b/init/util.cpp @@ -317,7 +317,7 @@ int wait_for_file(const char *filename, int timeout) } void import_kernel_cmdline(bool in_qemu, - std::function fn) { + const std::function& fn) { std::string cmdline; android::base::ReadFileToString("/proc/cmdline", &cmdline); diff --git a/init/util.h b/init/util.h index 9d522cc8e..f020da8c1 100644 --- a/init/util.h +++ b/init/util.h @@ -55,7 +55,7 @@ void make_link_init(const char *oldpath, const char *newpath); void remove_link(const char *oldpath, const char *newpath); int wait_for_file(const char *filename, int timeout); void import_kernel_cmdline(bool in_qemu, - std::function); + const std::function&); int make_dir(const char *path, mode_t mode); int restorecon(const char *pathname); int restorecon_recursive(const char *pathname); diff --git a/libbacktrace/backtrace_offline_test.cpp b/libbacktrace/backtrace_offline_test.cpp index 88a3533a2..d6dc2c960 100644 --- a/libbacktrace/backtrace_offline_test.cpp +++ b/libbacktrace/backtrace_offline_test.cpp @@ -73,7 +73,7 @@ static ucontext_t GetUContextFromUnwContext(const unw_context_t& unw_context) { return ucontext; } -static void OfflineBacktraceFunctionCall(std::function function, +static void OfflineBacktraceFunctionCall(const std::function& function, std::vector* pc_values) { // Create a thread to generate the needed stack and registers information. g_exit_flag = false;