summaryrefslogtreecommitdiff
path: root/libs/utils/BasicHashtable.cpp
AgeCommit message (Collapse)Author
2013-07-31remove libutils Alex Ray
libutils is being moved from frameworks/native/ to system/core/ in order to facilitate native C++ platform (non-frameworks) code. Change-Id: I44089fb960591a40b8a9c30faabb10459d107d71
2013-07-24libutils: give BasicHashtableImpl a virtual destructor Alex Ray
Change-Id: I4ec590b060d732af5fe525670becbe778684247b
2012-10-26Add an LRU cache plus hashing primitives Raph Levien
This patch adds a hashtable-based LRU cache. This should be significantly higher performance than the GenerationCache it is intended to replace. It is a large part of the fix for bug 7271109 TextLayoutCache low-level performance issues. We added a new method to BasicHashtable to detect when rehashing is needed, because the internal linked list pointers would get invalidated by that rehashing. Also, the hash_type specialized to pointers had a small flaw. Change-Id: I950c2083f96519777b851dbe157100e0a334caec
2011-11-22Add a basic hashtable data structure, with tests! Jeff Brown
The basic hashtable is intended to be used to support a variety of different datastructures such as map, set, multimap, multiset, linkedmap, generationcache, etc. Consequently its interface is fairly primitive. The basic hashtable supports copy-on-write style functionality using SharedBuffer. The change introduces a simple generic function in TypeHelpers for specifying hash functions. The idea is to add template specializations of hash_type<T> next to the relevant data structures such as String8, String16, sp<T>, etc. Change-Id: I2c479229e9d4527b4fbfe3b8b04776a2fd32c973