diff options
author | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2018-10-05 21:04:08 +0300 |
---|---|---|
committer | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2018-11-05 13:26:43 +0200 |
commit | c3f1821ac788e522e7558e3575150433450dcb8c (patch) | |
tree | f8151d24bfca9a789146b4ad4d4909f4532f29c0 | |
parent | 13d98ea0d76ee55c24e4fb76b962ed696a4b6123 (diff) |
Make blockdir always net specific
The blocks directory is net specific by definition.
Also this prevents the side effect of calling GetBlocksDir(false) in the
non-mainnet environment.
-rw-r--r-- | src/init.cpp | 2 | ||||
-rw-r--r-- | src/util/system.cpp | 9 | ||||
-rw-r--r-- | src/util/system.h | 3 |
3 files changed, 6 insertions, 8 deletions
diff --git a/src/init.cpp b/src/init.cpp index 90dfeb3604..070f52caf7 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -906,7 +906,7 @@ bool AppInitParameterInteraction() // also see: InitParameterInteraction() - if (!fs::is_directory(GetBlocksDir(false))) { + if (!fs::is_directory(GetBlocksDir())) { return InitError(strprintf(_("Specified blocks directory \"%s\" does not exist."), gArgs.GetArg("-blocksdir", "").c_str())); } diff --git a/src/util/system.cpp b/src/util/system.cpp index 4f5dd2d6e9..38d8ef534e 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -728,18 +728,17 @@ fs::path GetDefaultDataDir() #endif } -static fs::path g_blocks_path_cached; static fs::path g_blocks_path_cache_net_specific; static fs::path pathCached; static fs::path pathCachedNetSpecific; static CCriticalSection csPathCached; -const fs::path &GetBlocksDir(bool fNetSpecific) +const fs::path &GetBlocksDir() { LOCK(csPathCached); - fs::path &path = fNetSpecific ? g_blocks_path_cache_net_specific : g_blocks_path_cached; + fs::path &path = g_blocks_path_cache_net_specific; // This can be called during exceptions by LogPrintf(), so we cache the // value so we don't have to do memory allocations after that. @@ -755,9 +754,8 @@ const fs::path &GetBlocksDir(bool fNetSpecific) } else { path = GetDataDir(false); } - if (fNetSpecific) - path /= BaseParams().DataDir(); + path /= BaseParams().DataDir(); path /= "blocks"; fs::create_directories(path); return path; @@ -801,7 +799,6 @@ void ClearDatadirCache() pathCached = fs::path(); pathCachedNetSpecific = fs::path(); - g_blocks_path_cached = fs::path(); g_blocks_path_cache_net_specific = fs::path(); } diff --git a/src/util/system.h b/src/util/system.h index 5634b8dd61..dd8868d166 100644 --- a/src/util/system.h +++ b/src/util/system.h @@ -78,7 +78,8 @@ void ReleaseDirectoryLocks(); bool TryCreateDirectories(const fs::path& p); fs::path GetDefaultDataDir(); -const fs::path &GetBlocksDir(bool fNetSpecific = true); +// The blocks directory is always net specific. +const fs::path &GetBlocksDir(); const fs::path &GetDataDir(bool fNetSpecific = true); void ClearDatadirCache(); fs::path GetConfigFile(const std::string& confPath); |