int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
/** * item value has been removed from the cache * @param item <code>CacheItem</code> that was just removed * * Cache bucket is already synchronized by the caller */ protected void itemRemoved(CacheItem item) { LruCacheItem l = (LruCacheItem) item; int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment]; // remove the item from the LRU list synchronized (list) { // if the item is already trimmed from the LRU list, nothing to do. if (l.isTrimmed) return; LruCacheItem prev = l.lPrev; LruCacheItem next = l.lNext; // patch up the neighbors and make sure head/tail are correct if (prev != null) prev.lNext = next; else list[LRU_HEAD] = next; if (next != null) next.lPrev = prev; else list[LRU_TAIL] = prev; listsLength[segment]--; } }
int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
LruCacheItem l = (LruCacheItem) item; int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
/** * item value has been removed from the cache * @param item <code>CacheItem</code> that was just removed * * Cache bucket is already synchronized by the caller */ protected void itemRemoved(CacheItem item) { LruCacheItem l = (LruCacheItem) item; int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment]; // remove the item from the LRU list synchronized (list) { // if the item is already trimmed from the LRU list, nothing to do. if (l.isTrimmed) return; LruCacheItem prev = l.lPrev; LruCacheItem next = l.lNext; // patch up the neighbors and make sure head/tail are correct if (prev != null) prev.lNext = next; else list[LRU_HEAD] = next; if (next != null) next.lPrev = prev; else list[LRU_TAIL] = prev; listsLength[segment]--; } }
LruCacheItem l = (LruCacheItem) item; int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
LruCacheItem lc = (LruCacheItem) item; int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];
LruCacheItem lc = (LruCacheItem) item; int index = getIndex(item.hashCode()); int segment = (index/segmentSize); LruCacheItem[] list = lists[segment];