diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2013-06-10 22:43:29 -0600 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2013-06-10 22:43:29 -0600 |
commit | 427490edb566edf18da0b879f9d30a04dda0e9e0 (patch) | |
tree | 9e8333fcaf19fb3b6aef18366d7aa80d1f7479b8 /indra/newview/llviewerregion.cpp | |
parent | ebf35d51b14f224c36a19a453a20885e667f6bec (diff) |
possible fix and new debug code for SH-4241: viewer crash shortly after login in LLViewerRegion::addNewObject
Diffstat (limited to 'indra/newview/llviewerregion.cpp')
-rwxr-xr-x | indra/newview/llviewerregion.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 55137168ee..29528a1117 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -953,6 +953,8 @@ void LLViewerRegion::addToVOCacheTree(LLVOCacheEntry* entry) { return; } + + llassert_always(!entry->getParentID() && !entry->getEntry()->hasDrawable()); mImpl->mVOCachePartition->addEntry(entry->getEntry()); } @@ -993,6 +995,11 @@ void LLViewerRegion::addVisibleCacheEntry(LLVOCacheEntry* entry) F32 LLViewerRegion::updateVisibleEntries(F32 max_time) { + if(mDead) + { + return max_time; + } + if(mImpl->mVisibleGroups.empty() && mImpl->mVisibleEntries.empty()) { return max_time; @@ -1100,6 +1107,10 @@ F32 LLViewerRegion::updateVisibleEntries(F32 max_time) F32 LLViewerRegion::createVisibleObjects(F32 max_time) { + if(mDead) + { + return max_time; + } if(mImpl->mWaitingList.empty()) { return max_time; @@ -1120,8 +1131,7 @@ F32 LLViewerRegion::createVisibleObjects(F32 max_time) break; } } - } - mImpl->mWaitingList.clear(); + } return max_time - update_timer.getElapsedTimeF32(); } @@ -1156,6 +1166,7 @@ BOOL LLViewerRegion::idleUpdate(F32 max_update_time) max_update_time = updateVisibleEntries(max_update_time); createVisibleObjects(max_update_time); + mImpl->mWaitingList.clear(); mImpl->mVisibleGroups.clear(); return did_update; |