diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2013-12-04 12:37:11 -0700 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2013-12-04 12:37:11 -0700 |
commit | 7e17824f61a0ee160d2c28e24bdd87a005b4c17d (patch) | |
tree | e2dd139df50cc60d189679f784df57024746644d /indra/newview/llviewerregion.cpp | |
parent | f7dc3937cd7bd0cfed83db5df25ddba20481d98d (diff) | |
parent | 4a3e01f8dc1e8cf38183c9be564c7f4fa5dd49d3 (diff) |
Automated merge with http://bitbucket.org/lindenlab/viewer-interesting
Diffstat (limited to 'indra/newview/llviewerregion.cpp')
-rwxr-xr-x | indra/newview/llviewerregion.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 6908de884c..c3cdfa2901 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1535,9 +1535,15 @@ LLViewerObject* LLViewerRegion::addNewObject(LLVOCacheEntry* entry) return obj; } -//remove from object cache if the object receives a full-update or terse update -LLViewerObject* LLViewerRegion::forceToRemoveFromCache(U32 local_id, LLViewerObject* objectp) +//update object cache if the object receives a full-update or terse update +//update_type == EObjectUpdateType::OUT_TERSE_IMPROVED or EObjectUpdateType::OUT_FULL +LLViewerObject* LLViewerRegion::updateCacheEntry(U32 local_id, LLViewerObject* objectp, U32 update_type) { + if(objectp && update_type != (U32)OUT_TERSE_IMPROVED) + { + return objectp; //no need to access cache + } + LLVOCacheEntry* entry = getCacheEntry(local_id); if (!entry) { @@ -1545,14 +1551,15 @@ LLViewerObject* LLViewerRegion::forceToRemoveFromCache(U32 local_id, LLViewerObj } if(!objectp) //object not created { - entry->setTouched(FALSE); //mark this entry invalid - - //create a new object before delete it from cache. + //create a new object from cache. objectp = gObjectList.processObjectUpdateFromCache(entry, this); } - //remove from cache. - killCacheEntry(entry); + //remove from cache if terse update + if(update_type == (U32)OUT_TERSE_IMPROVED) + { + killCacheEntry(entry); + } return objectp; } |