summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/lldrawable.cpp4
-rwxr-xr-xindra/newview/llviewerregion.cpp15
2 files changed, 16 insertions, 3 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index 93fb484f06..598b0d2ff4 100755
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -133,7 +133,9 @@ void LLDrawable::init(bool new_entry)
getRegion()->addVisibleCacheEntry(vo_entry); //to load all children.
}
- getRegion()->addActiveCacheEntry(vo_entry);
+ getRegion()->addActiveCacheEntry(vo_entry);
+
+ llassert_always(!vo_entry->getGroup()); //not in the object cache octree.
}
llassert(!vo_entry || vo_entry->getEntry() == mEntry);
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;