Reserve only one network specific cached path per session
This commit is contained in:
parent
934b153a2c
commit
f297479a19
1 changed files with 3 additions and 7 deletions
10
src/util.cpp
10
src/util.cpp
|
@ -395,7 +395,7 @@ boost::filesystem::path GetDefaultDataDir()
|
|||
#endif
|
||||
}
|
||||
|
||||
static boost::filesystem::path pathCached[CBaseChainParams::MAX_NETWORK_TYPES+1];
|
||||
static boost::filesystem::path pathCached[2];
|
||||
static CCriticalSection csPathCached;
|
||||
|
||||
const boost::filesystem::path &GetDataDir(bool fNetSpecific)
|
||||
|
@ -404,10 +404,7 @@ const boost::filesystem::path &GetDataDir(bool fNetSpecific)
|
|||
|
||||
LOCK(csPathCached);
|
||||
|
||||
int nNet = CBaseChainParams::MAX_NETWORK_TYPES;
|
||||
if (fNetSpecific) nNet = BaseParams().NetworkID();
|
||||
|
||||
fs::path &path = pathCached[nNet];
|
||||
fs::path &path = pathCached[fNetSpecific ? 1 : 0];
|
||||
|
||||
// This can be called during exceptions by LogPrintf(), so we cache the
|
||||
// value so we don't have to do memory allocations after that.
|
||||
|
@ -433,8 +430,7 @@ const boost::filesystem::path &GetDataDir(bool fNetSpecific)
|
|||
|
||||
void ClearDatadirCache()
|
||||
{
|
||||
std::fill(&pathCached[0], &pathCached[CBaseChainParams::MAX_NETWORK_TYPES+1],
|
||||
boost::filesystem::path());
|
||||
std::fill(&pathCached[0], &pathCached[2], boost::filesystem::path());
|
||||
}
|
||||
|
||||
boost::filesystem::path GetConfigFile()
|
||||
|
|
Loading…
Reference in a new issue