summaryrefslogtreecommitdiff
path: root/indra/llcommon/llmortician.cpp
diff options
context:
space:
mode:
authorAndreyL ProductEngine <alihatskiy@productengine.com>2019-10-23 18:30:09 +0300
committerAndreyL ProductEngine <alihatskiy@productengine.com>2019-10-23 18:30:09 +0300
commit5082b42d0a41d4566bf23e17af0483c747166c10 (patch)
tree436108424299c39ef0c9ad32c8c2fa778af0b947 /indra/llcommon/llmortician.cpp
parentc7e9bbc20e2c08976cdb72a877d7d41a2546f418 (diff)
parent33821bd599d1d9171cc93c38a2bc6c4ab6772c9a (diff)
Merged in lindenlab/viewer-release
Diffstat (limited to 'indra/llcommon/llmortician.cpp')
-rw-r--r--indra/llcommon/llmortician.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/indra/llcommon/llmortician.cpp b/indra/llcommon/llmortician.cpp
index 287f096eae..93c7d520f2 100644
--- a/indra/llcommon/llmortician.cpp
+++ b/indra/llcommon/llmortician.cpp
@@ -37,6 +37,42 @@ LLMortician::~LLMortician()
sGraveyard.remove(this);
}
+U32 LLMortician::logClass(std::stringstream &str)
+{
+ U32 size = sGraveyard.size();
+ str << "Mortician graveyard count: " << size;
+ str << " Zealous: " << (sDestroyImmediate ? "True" : "False");
+ if (size == 0)
+ {
+ return size;
+ }
+ str << " Output:\n";
+ std::list<LLMortician*>::iterator iter = sGraveyard.begin();
+ std::list<LLMortician*>::iterator end = sGraveyard.end();
+ while (iter!=end)
+ {
+ LLMortician* dead = *iter;
+ iter++;
+ // Be as detailed and safe as possible to figure out issues
+ str << "Pointer: " << dead;
+ if (dead)
+ {
+ try
+ {
+ str << " Is dead: " << (dead->isDead() ? "True" : "False");
+ str << " Name: " << typeid(*dead).name();
+ }
+ catch (...)
+ {
+
+ }
+ }
+ str << "\n";
+ }
+ str << "--------------------------------------------";
+ return size;
+}
+
void LLMortician::updateClass()
{
while (!sGraveyard.empty())