From b35eca4a6233e6a08c805f436b87d12df36962bd Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 12 Nov 2019 08:32:26 +0000 Subject: [PATCH] Ensure tool path cache doesn't get destroyed before adb shuts down --- renderdoc/android/android_tools.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/renderdoc/android/android_tools.cpp b/renderdoc/android/android_tools.cpp index 2275c5c4a..6973d0a0d 100644 --- a/renderdoc/android/android_tools.cpp +++ b/renderdoc/android/android_tools.cpp @@ -148,11 +148,19 @@ std::string getToolInSDK(ToolDir subdir, const std::string &jdkroot, const std:: return ""; } + struct ToolPathCache { std::string sdk, jdk; std::map paths; -} cache; +}; + +static ToolPathCache &getCache() +{ + static ToolPathCache cache; + return cache; +} + std::string getToolPath(ToolDir subdir, const std::string &toolname, bool checkExist) { // search path for tools: @@ -171,6 +179,8 @@ std::string getToolPath(ToolDir subdir, const std::string &toolname, bool checkE std::string sdk = RenderDoc::Inst().GetConfigSetting("androidSDKPath"); std::string jdk = RenderDoc::Inst().GetConfigSetting("androidJDKPath"); + ToolPathCache &cache = getCache(); + // invalidate the cache when these settings change if(sdk != cache.sdk || jdk != cache.jdk) {