From e800af5c23607d6d5095d96b71978d3bcb6743e1 Mon Sep 17 00:00:00 2001 From: Yurii Zubrytskyi Date: Thu, 27 Jun 2019 13:47:17 -0700 Subject: [PATCH] [adb] Cache features set inside the client process Test: manual Change-Id: I99962edd85e9694c3ca309624368cda6355da008 --- adb/client/adb_client.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/adb/client/adb_client.cpp b/adb/client/adb_client.cpp index 7e408a87a..89dcb27c4 100644 --- a/adb/client/adb_client.cpp +++ b/adb/client/adb_client.cpp @@ -398,9 +398,15 @@ std::string format_host_command(const char* command) { } bool adb_get_feature_set(FeatureSet* feature_set, std::string* error) { - std::string result; - if (adb_query(format_host_command("features"), &result, error)) { - *feature_set = StringToFeatureSet(result); + static FeatureSet* features = nullptr; + if (!features) { + std::string result; + if (adb_query(format_host_command("features"), &result, error)) { + features = new FeatureSet(StringToFeatureSet(result)); + } + } + if (features) { + *feature_set = *features; return true; } feature_set->clear();