ultimatepp/uppsrc/Core/ValueCache.cpp
cxl 9a82b14059 Core: ValueCache
git-svn-id: svn://ultimatepp.org/upp/trunk@14573 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-06-09 14:55:33 +00:00

37 lines
No EOL
548 B
C++

#include "Core.h"
namespace Upp {
bool sFinished;
struct ValueMakeCacheClass : LRUCache<Value> {
~ValueMakeCacheClass() { sFinished = true; }
};
LRUCache<Value>& TheValueCache()
{
static ValueMakeCacheClass m;
return m;
}
int sMaxSize = 1000000;
void ShrinkValueCache()
{
TheValueCache().Shrink(sMaxSize, 2000);
}
void ShrinkValueCache(int maxsize)
{
sMaxSize = maxsize;
ShrinkValueCache();
}
Value MakeValue(ValueMaker& m)
{
Value v = TheValueCache().Get(m);
ShrinkValueCache();
return v;
}
};