summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerregion.cpp
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2013-06-10 22:43:29 -0600
committerXiaohong Bao <bao@lindenlab.com>2013-06-10 22:43:29 -0600
commit427490edb566edf18da0b879f9d30a04dda0e9e0 (patch)
tree9e8333fcaf19fb3b6aef18366d7aa80d1f7479b8 /indra/newview/llviewerregion.cpp
parentebf35d51b14f224c36a19a453a20885e667f6bec (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-xindra/newview/llviewerregion.cpp15
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;