diff --git a/indra/newview/llviewerobjectlist.h b/indra/newview/llviewerobjectlist.h index a458f8e10..795e4cbcc 100644 --- a/indra/newview/llviewerobjectlist.h +++ b/indra/newview/llviewerobjectlist.h @@ -201,7 +201,7 @@ public: S32 mNumUnknownKills; S32 mNumDeadObjects; S32 mMinNumDeadObjects; -protected: +//protected: std::vector mOrphanParents; // LocalID/ip,port of orphaned objects std::vector mOrphanChildren; // UUID's of orphaned objects S32 mNumOrphans; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 8217fe19e..b32fafaf8 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -576,6 +576,57 @@ public: ypos += y_inc; + S32 total_objects = gObjectList.getNumObjects(); + S32 ID_objects = gObjectList.mUUIDObjectMap.size(); + S32 dead_objects = gObjectList.mNumDeadObjects; + S32 dead_object_list = gObjectList.mDeadObjects.size(); + S32 dead_object_check = 0; + S32 total_avatars = 0; + S32 ID_avatars = gObjectList.mUUIDAvatarMap.size(); + S32 dead_avatar_list = 0; + S32 dead_avatar_check = 0; + + S32 orphan_parents = gObjectList.getOrphanParentCount(); + S32 orphan_parents_check = gObjectList.mOrphanParents.size(); + S32 orphan_children = gObjectList.mOrphanChildren.size(); + S32 orphan_total = gObjectList.getOrphanCount(); + S32 orphan_child_attachments = 0; + + for(U32 i = 0;iisAvatar()) + ++total_avatars; + if(obj->isDead()) + { + ++dead_object_check; + if(obj->isAvatar()) + ++dead_avatar_check; + } + } + } + for(std::set::iterator it = gObjectList.mDeadObjects.begin();it!=gObjectList.mDeadObjects.end();++it) + { + LLViewerObject *obj = gObjectList.findObject(*it); + if(obj && obj->isAvatar()) + ++dead_avatar_list; + } + for(std::vector::iterator it = gObjectList.mOrphanChildren.begin();it!=gObjectList.mOrphanChildren.end();++it) + { + LLViewerObject *obj = gObjectList.findObject(it->mChildInfo); + if(obj && obj->isAttachment()) + ++orphan_child_attachments; + } + addText(xpos,ypos, llformat("%d|%d (%d|%d|%d) Objects", total_objects, ID_objects, dead_objects, dead_object_list,dead_object_check)); + ypos += y_inc; + addText(xpos,ypos, llformat("%d|%d (%d|%d) Avatars", total_avatars, ID_avatars, dead_avatar_list,dead_avatar_check)); + ypos += y_inc; + addText(xpos,ypos, llformat("%d (%d|%d %d %d) Orphans", orphan_total, orphan_parents, orphan_parents_check,orphan_children, orphan_child_attachments)); + + ypos += y_inc; + #if MESH_ENABLED if (gMeshRepo.meshRezEnabled()) {