summaryrefslogtreecommitdiff
path: root/indra/newview/llvocache.cpp
diff options
context:
space:
mode:
authorDessie Linden <dessie@lindenlab.com>2010-11-15 12:05:05 -0800
committerDessie Linden <dessie@lindenlab.com>2010-11-15 12:05:05 -0800
commit5bfa6095db3a0a9c7367b7dde3f2e24e023cb7f4 (patch)
tree1ab6b0946d7bfb881a2ccfaa2382d24b46a6b729 /indra/newview/llvocache.cpp
parent65d847de38614a67ed1bdd86445c1c80f4638cc3 (diff)
parentc13f6afe73bea4311a91d65dde2f6e1c5bc453b3 (diff)
Added viewer-release.release-viewer.jira parameter to write build comment to DRTVWR-13
Diffstat (limited to 'indra/newview/llvocache.cpp')
-rw-r--r--indra/newview/llvocache.cpp74
1 files changed, 38 insertions, 36 deletions
diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp
index 0b903e62b1..b1c6ea26cc 100644
--- a/indra/newview/llvocache.cpp
+++ b/indra/newview/llvocache.cpp
@@ -44,25 +44,27 @@ BOOL check_write(LLAPRFile* apr_file, void* src, S32 n_bytes)
//---------------------------------------------------------------------------
LLVOCacheEntry::LLVOCacheEntry(U32 local_id, U32 crc, LLDataPackerBinaryBuffer &dp)
+ :
+ mLocalID(local_id),
+ mCRC(crc),
+ mHitCount(0),
+ mDupeCount(0),
+ mCRCChangeCount(0)
{
- mLocalID = local_id;
- mCRC = crc;
- mHitCount = 0;
- mDupeCount = 0;
- mCRCChangeCount = 0;
mBuffer = new U8[dp.getBufferSize()];
mDP.assignBuffer(mBuffer, dp.getBufferSize());
mDP = dp;
}
LLVOCacheEntry::LLVOCacheEntry()
+ :
+ mLocalID(0),
+ mCRC(0),
+ mHitCount(0),
+ mDupeCount(0),
+ mCRCChangeCount(0),
+ mBuffer(NULL)
{
- mLocalID = 0;
- mCRC = 0;
- mHitCount = 0;
- mDupeCount = 0;
- mCRCChangeCount = 0;
- mBuffer = NULL;
mDP.assignBuffer(mBuffer, 0);
}
@@ -73,7 +75,7 @@ LLVOCacheEntry::LLVOCacheEntry(LLAPRFile* apr_file)
success = check_read(apr_file, &mLocalID, sizeof(U32));
if(success)
-{
+ {
success = check_read(apr_file, &mCRC, sizeof(U32));
}
if(success)
@@ -83,27 +85,24 @@ LLVOCacheEntry::LLVOCacheEntry(LLAPRFile* apr_file)
if(success)
{
success = check_read(apr_file, &mDupeCount, sizeof(S32));
-}
+ }
if(success)
-{
+ {
success = check_read(apr_file, &mCRCChangeCount, sizeof(S32));
}
if(success)
{
success = check_read(apr_file, &size, sizeof(S32));
- // Corruption in the cache entries
- if ((size > 10000) || (size < 1))
- {
- // We've got a bogus size, skip reading it.
- // We won't bother seeking, because the rest of this file
- // is likely bogus, and will be tossed anyway.
- llwarns << "Bogus cache entry, size " << size << ", aborting!" << llendl;
- mLocalID = 0;
- mCRC = 0;
- mBuffer = NULL;
- return;
- }
+ // Corruption in the cache entries
+ if ((size > 10000) || (size < 1))
+ {
+ // We've got a bogus size, skip reading it.
+ // We won't bother seeking, because the rest of this file
+ // is likely bogus, and will be tossed anyway.
+ llwarns << "Bogus cache entry, size " << size << ", aborting!" << llendl;
+ success = FALSE;
+ }
}
if(success && size > 0)
{
@@ -112,8 +111,8 @@ LLVOCacheEntry::LLVOCacheEntry(LLAPRFile* apr_file)
if(success)
{
- mDP.assignBuffer(mBuffer, size);
-}
+ mDP.assignBuffer(mBuffer, size);
+ }
else
{
delete[] mBuffer ;
@@ -125,6 +124,9 @@ LLVOCacheEntry::LLVOCacheEntry(LLAPRFile* apr_file)
{
mLocalID = 0;
mCRC = 0;
+ mHitCount = 0;
+ mDupeCount = 0;
+ mCRCChangeCount = 0;
mBuffer = NULL;
}
}
@@ -221,7 +223,6 @@ BOOL LLVOCacheEntry::writeToFile(LLAPRFile* apr_file) const
// Format string used to construct filename for the object cache
static const char OBJECT_CACHE_FILENAME[] = "objects_%d_%d.slc";
-const U32 MAX_NUM_OBJECT_ENTRIES = 128 ;
const U32 NUM_ENTRIES_TO_PURGE = 16 ;
const char* object_cache_dirname = "objectcache";
const char* header_filename = "object.cache";
@@ -257,7 +258,8 @@ void LLVOCache::destroyClass()
LLVOCache::LLVOCache():
mInitialized(FALSE),
mReadOnly(TRUE),
- mNumEntries(0)
+ mNumEntries(0),
+ mCacheSize(1)
{
mLocalAPRFilePoolp = new LLVolatileAPRPool() ;
}
@@ -288,9 +290,9 @@ void LLVOCache::initCache(ELLPath location, U32 size, U32 cache_version)
if (!mReadOnly)
{
LLFile::mkdir(mObjectCacheDirName);
- }
- mCacheSize = llmin(size, MAX_NUM_OBJECT_ENTRIES) ;
- mCacheSize = llmax(mCacheSize, NUM_ENTRIES_TO_PURGE);
+ }
+
+ mCacheSize = size;
mMetaInfo.mVersion = cache_version;
readCacheHeader();
@@ -421,7 +423,7 @@ void LLVOCache::readCacheHeader()
HeaderEntryInfo* entry ;
mNumEntries = 0 ;
- while(mNumEntries < MAX_NUM_OBJECT_ENTRIES)
+ while(mNumEntries < mCacheSize)
{
entry = new HeaderEntryInfo() ;
if(!checkRead(apr_file, entry, sizeof(HeaderEntryInfo)))
@@ -474,10 +476,10 @@ void LLVOCache::writeCacheHeader()
}
mNumEntries = mHeaderEntryQueue.size() ;
- if(mNumEntries < MAX_NUM_OBJECT_ENTRIES)
+ if(mNumEntries < mCacheSize)
{
HeaderEntryInfo* entry = new HeaderEntryInfo() ;
- for(S32 i = mNumEntries ; i < MAX_NUM_OBJECT_ENTRIES ; i++)
+ for(U32 i = mNumEntries ; i < mCacheSize; i++)
{
//fill the cache with the default entry.
if(!checkWrite(apr_file, entry, sizeof(HeaderEntryInfo)))