Merge "Fix LruCache, allow std:string caching"
This commit is contained in:
commit
1477714262
2 changed files with 13 additions and 10 deletions
|
@ -29,6 +29,8 @@ typedef const char* StringValue;
|
|||
struct ComplexKey {
|
||||
int k;
|
||||
|
||||
explicit ComplexKey() : k(0) { instanceCount += 1; }
|
||||
|
||||
explicit ComplexKey(int k) : k(k) {
|
||||
instanceCount += 1;
|
||||
}
|
||||
|
@ -57,6 +59,8 @@ ssize_t ComplexKey::instanceCount = 0;
|
|||
struct ComplexValue {
|
||||
int v;
|
||||
|
||||
explicit ComplexValue() : v(0) { instanceCount += 1; }
|
||||
|
||||
explicit ComplexValue(int v) : v(v) {
|
||||
instanceCount += 1;
|
||||
}
|
||||
|
@ -83,10 +87,9 @@ struct KeyWithPointer {
|
|||
|
||||
struct KeyFailsOnCopy : public ComplexKey {
|
||||
public:
|
||||
KeyFailsOnCopy(const KeyFailsOnCopy& key) : ComplexKey(key) {
|
||||
ADD_FAILURE();
|
||||
}
|
||||
KeyFailsOnCopy(int key) : ComplexKey(key) { }
|
||||
KeyFailsOnCopy() : ComplexKey() {}
|
||||
KeyFailsOnCopy(const KeyFailsOnCopy& key) : ComplexKey(key) { ADD_FAILURE(); }
|
||||
KeyFailsOnCopy(int key) : ComplexKey(key) {}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
|
|
@ -161,12 +161,12 @@ public:
|
|||
// Implementation is here, because it's fully templated
|
||||
template <typename TKey, typename TValue>
|
||||
LruCache<TKey, TValue>::LruCache(uint32_t maxCapacity)
|
||||
: mSet(new LruCacheSet())
|
||||
, mListener(nullptr)
|
||||
, mOldest(nullptr)
|
||||
, mYoungest(nullptr)
|
||||
, mMaxCapacity(maxCapacity)
|
||||
, mNullValue(0) {
|
||||
: mSet(new LruCacheSet()),
|
||||
mListener(nullptr),
|
||||
mOldest(nullptr),
|
||||
mYoungest(nullptr),
|
||||
mMaxCapacity(maxCapacity),
|
||||
mNullValue{} {
|
||||
mSet->max_load_factor(1.0);
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue