summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerobject.cpp
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2013-06-05 18:01:25 -0600
committerXiaohong Bao <bao@lindenlab.com>2013-06-05 18:01:25 -0600
commita6dbd8e089b7d0f462a8ed753258a442b1861541 (patch)
treeccba4ba44617b6b40dd4dde6c69400c107a2e0a8 /indra/newview/llviewerobject.cpp
parentf6c5a4057d1154e590ee630cb8254879a1f426e4 (diff)
fix for SH-4227: interesting: long delay between root and child prim loading.
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r--indra/newview/llviewerobject.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index d912918129..f13e6b7f43 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -343,6 +343,10 @@ void LLViewerObject::markDead()
// Mark itself as dead
mDead = TRUE;
+ if(mRegionp)
+ {
+ mRegionp->removeFromCreatedList(getLocalID());
+ }
gObjectList.cleanupReferences(this);
LLViewerObject *childp;
@@ -1046,6 +1050,17 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
}
else
{
+ if(regionp != mRegionp)
+ {
+ if(mRegionp)
+ {
+ mRegionp->removeFromCreatedList(getLocalID());
+ }
+ if(regionp)
+ {
+ regionp->addToCreatedList(getLocalID());
+ }
+ }
mRegionp = regionp ;
}
}
@@ -5454,7 +5469,18 @@ void LLViewerObject::setRegion(LLViewerRegion *regionp)
{
llwarns << "viewer object set region to NULL" << llendl;
}
-
+ if(regionp != mRegionp)
+ {
+ if(mRegionp)
+ {
+ mRegionp->removeFromCreatedList(getLocalID());
+ }
+ if(regionp)
+ {
+ regionp->addToCreatedList(getLocalID());
+ }
+ }
+
mLatestRecvPacketID = 0;
mRegionp = regionp;