diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2013-09-13 10:49:31 -0600 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2013-09-13 10:49:31 -0600 |
commit | 5c7b84c682ea0f92f3f4389b0dbe758b8cadc6eb (patch) | |
tree | 1d4dad7ebc426466bfa5f5031626156b7b5ec44b /indra | |
parent | 75f5efff9bc29380bae5a3febd5e2bd169aaff79 (diff) |
fix for SH-4494: interesting: deleted objects reappear
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/newview/llviewermessage.cpp | 19 |
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. |