Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e402f1fd authored by Romain Guy's avatar Romain Guy
Browse files

Add another ifndef and a couple of methods to LruCache

The new methods on LruCache are needed by libhwui to manage
the cache of paths.

Change-Id: If54fa325c54e2b04e7fe5dfe6dad66066c40127c
parent 98fc88d3
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@
 * should still be quite good.
 **/

#ifndef ANDROID_JENKINS_HASH_H
#define ANDROID_JENKINS_HASH_H

#include <utils/TypeHelpers.h>

namespace android {
@@ -42,3 +45,4 @@ uint32_t JenkinsHashMixShorts(uint32_t hash, const uint16_t* shorts, size_t size

}

#endif // ANDROID_JENKINS_HASH_H
+24 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@ public:

    void setOnEntryRemovedListener(OnEntryRemoved<TKey, TValue>* listener);
    size_t size() const;
    const TKey& keyAt(size_t index) const;
    const TValue& valueAt(size_t index) const;
    void removeAt(size_t index);
    const TValue& get(const TKey& key);
    bool put(const TKey& key, const TValue& value);
    bool remove(const TKey& key);
@@ -85,6 +88,27 @@ size_t LruCache<TKey, TValue>::size() const {
    return mTable->size();
}

template <typename TKey, typename TValue>
const TKey& LruCache<TKey, TValue>::keyAt(size_t index) const {
    const Entry& entry = mTable->entryAt(index);
    return entry.key;
}

template <typename TKey, typename TValue>
const TValue& LruCache<TKey, TValue>::valueAt(size_t index) const {
    const Entry& entry = mTable->entryAt(index);
    return entry.value;
}

template <typename TKey, typename TValue>
void LruCache<TKey, TValue>::removeAt(size_t index) {
    if (index < 0) {
        return;
    }

    mTable->removeAt(index);
}

template <typename TKey, typename TValue>
const TValue& LruCache<TKey, TValue>::get(const TKey& key) {
    hash_t hash = hash_type(key);