Browse Source

Reserve only one network specific cached path per session

0.10
jtimon 10 years ago
parent
commit
f297479a19
  1. 10
      src/util.cpp

10
src/util.cpp

@ -395,7 +395,7 @@ boost::filesystem::path GetDefaultDataDir()
#endif #endif
} }
static boost::filesystem::path pathCached[CBaseChainParams::MAX_NETWORK_TYPES+1]; static boost::filesystem::path pathCached[2];
static CCriticalSection csPathCached; static CCriticalSection csPathCached;
const boost::filesystem::path &GetDataDir(bool fNetSpecific) const boost::filesystem::path &GetDataDir(bool fNetSpecific)
@ -404,10 +404,7 @@ const boost::filesystem::path &GetDataDir(bool fNetSpecific)
LOCK(csPathCached); LOCK(csPathCached);
int nNet = CBaseChainParams::MAX_NETWORK_TYPES; fs::path &path = pathCached[fNetSpecific ? 1 : 0];
if (fNetSpecific) nNet = BaseParams().NetworkID();
fs::path &path = pathCached[nNet];
// This can be called during exceptions by LogPrintf(), so we cache the // This can be called during exceptions by LogPrintf(), so we cache the
// value so we don't have to do memory allocations after that. // 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() void ClearDatadirCache()
{ {
std::fill(&pathCached[0], &pathCached[CBaseChainParams::MAX_NETWORK_TYPES+1], std::fill(&pathCached[0], &pathCached[2], boost::filesystem::path());
boost::filesystem::path());
} }
boost::filesystem::path GetConfigFile() boost::filesystem::path GetConfigFile()

Loading…
Cancel
Save