diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2010-03-07 21:18:10 -0700 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2010-03-07 21:18:10 -0700 |
commit | 6a8b63e9de7ee78db2e24ed77f855c1e19790af2 (patch) | |
tree | 238c6b20f3bd719d25dd83054765c9dbb2af9fb1 /indra/newview/lltexturecache.h | |
parent | d33b6a18872a652808afe3aa9ae40de6adaa3004 (diff) |
partial fix for EXT-5711: Some textures loading from cache seems jammed.
This fix should be able to improve the speed of loading texturs from cache noticeably (30% or more). More fix to come.
Diffstat (limited to 'indra/newview/lltexturecache.h')
-rw-r--r-- | indra/newview/lltexturecache.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h index 64ec881fc3..b840619c1f 100644 --- a/indra/newview/lltexturecache.h +++ b/indra/newview/lltexturecache.h @@ -68,6 +68,7 @@ private: Entry(const LLUUID& id, S32 imagesize, S32 bodysize, U32 time) : mID(id), mImageSize(imagesize), mBodySize(bodysize), mTime(time) {} void init(const LLUUID& id, U32 time) { mID = id, mImageSize = 0; mBodySize = 0; mTime = time; } + Entry& operator=(const Entry& entry) {mID = entry.mID, mImageSize = entry.mImageSize; mBodySize = entry.mBodySize; mTime = entry.mTime; return *this;} LLUUID mID; // 16 bytes S32 mImageSize; // total size of image if known S32 mBodySize; // size of body file in body cache @@ -166,6 +167,8 @@ private: S32 getHeaderCacheEntry(const LLUUID& id, S32& imagesize); S32 setHeaderCacheEntry(const LLUUID& id, S32 imagesize); bool removeHeaderCacheEntry(const LLUUID& id); + void writeUpdatedEntries() ; + void updatedHeaderEntriesFile() ; void lockHeaders() { mHeaderMutex.lock(); } void unlockHeaders() { mHeaderMutex.unlock(); } @@ -204,6 +207,9 @@ private: S64 mTexturesSizeTotal; LLAtomic32<BOOL> mDoPurge; + typedef std::map<S32, Entry> idx_entry_map_t; + idx_entry_map_t mUpdatedEntryMap; + // Statics static F32 sHeaderCacheVersion; static U32 sCacheMaxEntries; |