adb: Avoid extra std::string copies

When a function argument takes a std::string, it's inefficient to
pass std::string::c_str(), since that creates an additional copy.
So we change these calling sites.

Test: TreeHugger
Change-Id: I1c0fde7275eb3ebd3baf05ec62581b0243655608
This commit is contained in:
Greg Kaiser 2019-03-26 11:58:53 -07:00
parent d2c4eb0dae
commit e2125fdeb1
6 changed files with 8 additions and 8 deletions

View file

@ -312,7 +312,7 @@ std::string adb_get_android_dir_path() {
std::string android_dir = user_dir + OS_PATH_SEPARATOR + ".android";
struct stat buf;
if (stat(android_dir.c_str(), &buf) == -1) {
if (adb_mkdir(android_dir.c_str(), 0750) == -1) {
if (adb_mkdir(android_dir, 0750) == -1) {
PLOG(FATAL) << "Cannot mkdir '" << android_dir << "'";
}
}

View file

@ -136,7 +136,7 @@ class BugreportTest : public ::testing::Test {
void ExpectBugreportzVersion(const std::string& version) {
EXPECT_CALL(br_, SendShellCommand("bugreportz -v", false, _))
.WillOnce(DoAll(WithArg<2>(WriteOnStderr(version.c_str())),
.WillOnce(DoAll(WithArg<2>(WriteOnStderr(version)),
WithArg<2>(ReturnCallbackDone(0))));
}

View file

@ -416,7 +416,7 @@ void adb_auth_init() {
#endif
for (const std::string& path : key_paths) {
load_keys(path.c_str());
load_keys(path);
}
}

View file

@ -1012,7 +1012,7 @@ bool do_sync_push(const std::vector<const char*>& srcs, const char* dst, bool sy
dst_dir.append(android::base::Basename(src_path));
}
success &= copy_local_dir_remote(sc, src_path, dst_dir.c_str(), sync, false);
success &= copy_local_dir_remote(sc, src_path, dst_dir, sync, false);
continue;
} else if (!should_push_file(st.st_mode)) {
sc.Warning("skipping special file '%s' (mode = 0o%o)", src_path, st.st_mode);
@ -1128,7 +1128,7 @@ static bool copy_remote_dir_local(SyncConnection& sc, std::string rpath,
// Recursively build the list of files to copy.
sc.Printf("pull: building file list...");
std::vector<copyinfo> file_list;
if (!remote_build_list(sc, &file_list, rpath.c_str(), lpath.c_str())) {
if (!remote_build_list(sc, &file_list, rpath, lpath)) {
return false;
}
@ -1240,7 +1240,7 @@ bool do_sync_pull(const std::vector<const char*>& srcs, const char* dst,
dst_dir.append(android::base::Basename(src_path));
}
success &= copy_remote_dir_local(sc, src_path, dst_dir.c_str(), copy_attrs);
success &= copy_remote_dir_local(sc, src_path, dst_dir, copy_attrs);
continue;
} else if (!should_pull_file(src_st.st_mode)) {
sc.Warning("skipping special file '%s' (mode = 0o%o)", src_path, src_st.st_mode);

View file

@ -422,7 +422,7 @@ static bool do_send(int s, const std::string& spec, std::vector<char>& buffer) {
bool result;
uint32_t timestamp;
if (S_ISLNK(mode)) {
result = handle_send_link(s, path.c_str(), &timestamp, buffer);
result = handle_send_link(s, path, &timestamp, buffer);
} else {
// Copy user permission bits to "group" and "other" permissions.
mode &= 0777;

View file

@ -188,7 +188,7 @@ static void connect_service(unique_fd fd, std::string host) {
if (!strncmp(host.c_str(), "emu:", 4)) {
connect_emulator(host.c_str() + 4, &response);
} else {
connect_device(host.c_str(), &response);
connect_device(host, &response);
}
// Send response for emulator and device