summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2013-09-13 10:49:31 -0600
committerXiaohong Bao <bao@lindenlab.com>2013-09-13 10:49:31 -0600
commit5c7b84c682ea0f92f3f4389b0dbe758b8cadc6eb (patch)
tree1d4dad7ebc426466bfa5f5031626156b7b5ec44b /indra
parent75f5efff9bc29380bae5a3febd5e2bd169aaff79 (diff)
fix for SH-4494: interesting: deleted objects reappear
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llviewermessage.cpp19
1 files changed, 4 insertions, 15 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index ce83221d2c..2550ab34ee 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -4560,9 +4560,6 @@ void process_terse_object_update_improved(LLMessageSystem *mesgsys, void **user_
static LLTrace::TimeBlock FTM_PROCESS_OBJECTS("Process Kill Objects");
-const U32 KILLOBJECT_DELETE_OPCODE = 0;
-
-
void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
{
LL_RECORD_BLOCK_TIME(FTM_PROCESS_OBJECTS);
@@ -4577,20 +4574,12 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
regionp = LLWorld::getInstance()->getRegion(host);
}
- bool delete_object = false;
+ bool delete_object = LLViewerRegion::sVOCacheCullingEnabled;
S32 num_objects = mesgsys->getNumberOfBlocksFast(_PREHASH_ObjectData);
for (S32 i = 0; i < num_objects; ++i)
{
U32 local_id;
mesgsys->getU32Fast(_PREHASH_ObjectData, _PREHASH_ID, local_id, i);
- if (local_id == KILLOBJECT_DELETE_OPCODE)
- {
- // This local_id is invalid, but was sent by the server to flag
- // all subsequent local_id's as objects that were actually deleted
- // rather than unsubscribed from interestlist.
- delete_object = true;
- continue;
- }
LLViewerObjectList::getUUIDFromLocal(id, local_id, ip, port);
if (id == LLUUID::null)
@@ -4623,10 +4612,10 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
gObjectList.killObject(objectp);
}
- if(delete_object)
+ if(delete_object)
{
- regionp->killCacheEntry(local_id);
- }
+ regionp->killCacheEntry(local_id);
+ }
// We should remove the object from selection after it is marked dead by gObjectList to make LLToolGrab,
// which is using the object, release the mouse capture correctly when the object dies.