From 0c84957d312bc3dc31fdb5711317157df73b72e6 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 27 Oct 2011 14:50:54 -0400 Subject: SH-2606 FIX, SH-2628 FIX - crash on exit in crash logger fixed by LLProxy::cleanupClass() --- indra/linux_crash_logger/llcrashloggerlinux.cpp | 6 ++++++ indra/linux_crash_logger/llcrashloggerlinux.h | 1 + indra/llcrashlogger/llcrashlogger.cpp | 7 +++++++ indra/llcrashlogger/llcrashlogger.h | 3 ++- indra/mac_crash_logger/llcrashloggermac.cpp | 1 + indra/win_crash_logger/llcrashloggerwindows.cpp | 1 + 6 files changed, 18 insertions(+), 1 deletion(-) mode change 100644 => 100755 indra/linux_crash_logger/llcrashloggerlinux.cpp mode change 100644 => 100755 indra/linux_crash_logger/llcrashloggerlinux.h mode change 100644 => 100755 indra/llcrashlogger/llcrashlogger.cpp mode change 100644 => 100755 indra/llcrashlogger/llcrashlogger.h mode change 100644 => 100755 indra/mac_crash_logger/llcrashloggermac.cpp mode change 100644 => 100755 indra/win_crash_logger/llcrashloggerwindows.cpp (limited to 'indra') diff --git a/indra/linux_crash_logger/llcrashloggerlinux.cpp b/indra/linux_crash_logger/llcrashloggerlinux.cpp old mode 100644 new mode 100755 index 7316717193..62465f9937 --- a/indra/linux_crash_logger/llcrashloggerlinux.cpp +++ b/indra/linux_crash_logger/llcrashloggerlinux.cpp @@ -133,6 +133,12 @@ bool LLCrashLoggerLinux::mainLoop() return true; } +bool LLCrashLoggerLinux::cleanup() +{ + commonCleanup(); + return true; +} + void LLCrashLoggerLinux::updateApplication(const std::string& message) { LLCrashLogger::updateApplication(message); diff --git a/indra/linux_crash_logger/llcrashloggerlinux.h b/indra/linux_crash_logger/llcrashloggerlinux.h old mode 100644 new mode 100755 index 65d5e4e653..dae6c46651 --- a/indra/linux_crash_logger/llcrashloggerlinux.h +++ b/indra/linux_crash_logger/llcrashloggerlinux.h @@ -39,6 +39,7 @@ public: virtual bool mainLoop(); virtual void updateApplication(const std::string& = LLStringUtil::null); virtual void gatherPlatformSpecificFiles(); + virtual bool cleanup(); }; #endif diff --git a/indra/llcrashlogger/llcrashlogger.cpp b/indra/llcrashlogger/llcrashlogger.cpp old mode 100644 new mode 100755 index 331a1692ee..3461aa3e6c --- a/indra/llcrashlogger/llcrashlogger.cpp +++ b/indra/llcrashlogger/llcrashlogger.cpp @@ -42,6 +42,7 @@ #include "llpumpio.h" #include "llhttpclient.h" #include "llsdserialize.h" +#include "llproxy.h" LLPumpIO* gServicePump; BOOL gBreak = false; @@ -428,3 +429,9 @@ bool LLCrashLogger::init() return true; } + +// For cleanup code common to all platforms. +void LLCrashLogger::commonCleanup() +{ + LLProxy::cleanupClass(); +} diff --git a/indra/llcrashlogger/llcrashlogger.h b/indra/llcrashlogger/llcrashlogger.h old mode 100644 new mode 100755 index 5d0cb5931c..1510d7e0b3 --- a/indra/llcrashlogger/llcrashlogger.h +++ b/indra/llcrashlogger/llcrashlogger.h @@ -48,7 +48,8 @@ public: virtual void updateApplication(const std::string& message = LLStringUtil::null); virtual bool init(); virtual bool mainLoop() = 0; - virtual bool cleanup() { return true; } + virtual bool cleanup() = 0; + void commonCleanup(); void setUserText(const std::string& text) { mCrashInfo["UserNotes"] = text; } S32 getCrashBehavior() { return mCrashBehavior; } bool runCrashLogPost(std::string host, LLSD data, std::string msg, int retries, int timeout); diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp old mode 100644 new mode 100755 index b555e92b96..8f1c1a2dd0 --- a/indra/mac_crash_logger/llcrashloggermac.cpp +++ b/indra/mac_crash_logger/llcrashloggermac.cpp @@ -249,5 +249,6 @@ void LLCrashLoggerMac::updateApplication(const std::string& message) bool LLCrashLoggerMac::cleanup() { + commonCleanup(); return true; } diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp old mode 100644 new mode 100755 index 170babbb98..36d988ead7 --- a/indra/win_crash_logger/llcrashloggerwindows.cpp +++ b/indra/win_crash_logger/llcrashloggerwindows.cpp @@ -370,5 +370,6 @@ bool LLCrashLoggerWindows::cleanup() sleep_and_pump_messages(3); } PostQuitMessage(0); + commonCleanup(); return true; } -- cgit v1.2.3