void ImageDecodingStore::insertCacheInternal(PassOwnPtr<T> cacheEntry, U* cacheMap, V* identifierMap) { const size_t cacheEntryBytes = cacheEntry->memoryUsageInBytes(); if (cacheEntry->isDiscardable()) m_discardableMemoryUsageInBytes += cacheEntryBytes; else m_heapMemoryUsageInBytes += cacheEntryBytes; // m_orderedCacheList is used to support LRU operations to reorder cache // entries quickly. m_orderedCacheList.append(cacheEntry.get()); typename U::KeyType key = cacheEntry->cacheKey(); typename V::AddResult result = identifierMap->add(cacheEntry->generator(), typename V::MappedType()); result.storedValue->value.add(key); cacheMap->add(key, cacheEntry); TRACE_COUNTER1("webkit", "ImageDecodingStoreDiscardableMemoryUsageBytes", m_discardableMemoryUsageInBytes); TRACE_COUNTER1("webkit", "ImageDecodingStoreHeapMemoryUsageBytes", m_heapMemoryUsageInBytes); TRACE_COUNTER1("webkit", "ImageDecodingStoreNumOfImages", m_imageCacheMap.size()); TRACE_COUNTER1("webkit", "ImageDecodingStoreNumOfDecoders", m_decoderCacheMap.size()); }