From 2b4dfefda216a0333426ac2a8f06d23ee6ef0aee Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Wed, 16 Oct 2013 20:59:13 -0600 Subject: more fix for SH-4552: Interesting: objects sometimes fail to load after teleport. --- indra/newview/llviewerregion.cpp | 2 +- indra/newview/llvocache.cpp | 4 ++-- indra/newview/llvocache.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index b9c7ded50b..0ad4402dcc 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -2097,7 +2097,7 @@ LLViewerRegion::eCacheUpdateResult LLViewerRegion::cacheFullUpdate(LLDataPackerB else //invisible { //copy some contents from old entry - entry->moveTo(new_entry); + entry->moveTo(new_entry, true); //remove old entry killCacheEntry(entry); diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp index f16f3507c3..89a49ff1ed 100755 --- a/indra/newview/llvocache.cpp +++ b/indra/newview/llvocache.cpp @@ -191,10 +191,10 @@ void LLVOCacheEntry::setOctreeEntry(LLViewerOctreeEntry* entry) LLViewerOctreeEntryData::setOctreeEntry(entry); } -void LLVOCacheEntry::moveTo(LLVOCacheEntry* new_entry) +void LLVOCacheEntry::moveTo(LLVOCacheEntry* new_entry, bool no_entry_move) { //copy LLViewerOctreeEntry - if(mEntry.notNull()) + if(mEntry.notNull() && !no_entry_move) { new_entry->setOctreeEntry(mEntry); mEntry = NULL; diff --git a/indra/newview/llvocache.h b/indra/newview/llvocache.h index eef364dd5d..21b30f5373 100755 --- a/indra/newview/llvocache.h +++ b/indra/newview/llvocache.h @@ -103,7 +103,7 @@ public: void recordHit(); void recordDupe() { mDupeCount++; } - void moveTo(LLVOCacheEntry* new_entry); //copy variables + void moveTo(LLVOCacheEntry* new_entry, bool no_entry_move = false); //copy variables /*virtual*/ void setOctreeEntry(LLViewerOctreeEntry* entry); void setParentID(U32 id) {mParentID = id;} -- cgit v1.2.3