From d9db985fc221deb9db407bdbe926a94326827e87 Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann <sebholt@xwmw.org> Date: Tue, 19 Mar 2019 17:05:43 +0100 Subject: [PATCH] SystemTools: Move private GetEnvImpl method to SystemToolsStatic --- SystemTools.cxx | 26 ++++++++++++++++---------- SystemTools.hxx.in | 2 -- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/SystemTools.cxx b/SystemTools.cxx index 4086b82..71ec67d 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -461,6 +461,7 @@ public: #ifdef _WIN32 static std::string GetCasePathName(std::string const& pathIn); static std::string GetActualCaseForPathCached(std::string const& path); + static const char* GetEnvBuffered(const char* key); std::map<std::string, std::string, SystemToolsPathCaseCmp> PathCaseMap; std::map<std::string, std::string> EnvMap; #endif @@ -596,30 +597,35 @@ void SystemTools::GetPath(std::vector<std::string>& path, const char* env) } } -const char* SystemTools::GetEnvImpl(const char* key) -{ - const char* v = KWSYS_NULLPTR; #if defined(_WIN32) +const char* SystemToolsStatic::GetEnvBuffered(const char* key) +{ std::string env; if (SystemTools::GetEnv(key, env)) { std::string& menv = SystemTools::Statics->EnvMap[key]; menv = std::move(env); - v = menv.c_str(); + return menv.c_str(); } -#else - v = getenv(key); -#endif - return v; + return KWSYS_NULLPTR; } +#endif const char* SystemTools::GetEnv(const char* key) { - return SystemTools::GetEnvImpl(key); +#if defined(_WIN32) + return SystemToolsStatic::GetEnvBuffered(key); +#else + return getenv(key); +#endif } const char* SystemTools::GetEnv(const std::string& key) { - return SystemTools::GetEnvImpl(key.c_str()); +#if defined(_WIN32) + return SystemToolsStatic::GetEnvBuffered(key.c_str()); +#else + return getenv(key.c_str()); +#endif } bool SystemTools::GetEnv(const char* key, std::string& result) diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in index ea39db6..41a9d32 100644 --- a/SystemTools.hxx.in +++ b/SystemTools.hxx.in @@ -985,8 +985,6 @@ private: const std::vector<std::string>& path = std::vector<std::string>(), bool no_system_path = false); - static const char* GetEnvImpl(const char* key); - static SystemToolsStatic* Statics; friend class SystemToolsStatic; friend class SystemToolsManager; -- GitLab