Commit 973fabc7 authored by Nikolai Kosjar's avatar Nikolai Kosjar
Browse files

Use RAII for crash handler setup/cleanup



Change-Id: I71205c45ee01eeaf1d2c991ec625f6a66be1e851
Reviewed-by: default avatarChristian Kandeler <christian.kandeler@theqtcompany.com>
parent 9554ef90
......@@ -317,7 +317,7 @@ int main(int argc, char **argv)
const int threadCount = QThreadPool::globalInstance()->maxThreadCount();
QThreadPool::globalInstance()->setMaxThreadCount(qMax(4, 2 * threadCount));
setupCrashHandler(); // Display a backtrace once a serious signal is delivered.
CrashHandlerSetup setupCrashHandler; // Display a backtrace once a serious signal is delivered.
#ifdef ENABLE_QT_BREAKPAD
QtSystemExceptionHandler systemExceptionHandler;
......@@ -518,7 +518,5 @@ int main(int argc, char **argv)
// shutdown plugin manager on the exit
QObject::connect(&app, SIGNAL(aboutToQuit()), &pluginManager, SLOT(shutdown()));
const int r = app.exec();
cleanupCrashHandler();
return r;
return app.exec();
}
......@@ -88,7 +88,7 @@ extern "C" void signalHandler(int signal)
}
#endif // BUILD_CRASH_HANDLER
void setupCrashHandler()
CrashHandlerSetup::CrashHandlerSetup()
{
#ifdef BUILD_CRASH_HANDLER
if (qgetenv("QTC_USE_CRASH_HANDLER").isEmpty())
......@@ -138,7 +138,7 @@ void setupCrashHandler()
#endif // BUILD_CRASH_HANDLER
}
void cleanupCrashHandler()
CrashHandlerSetup::~CrashHandlerSetup()
{
#ifdef BUILD_CRASH_HANDLER
delete[] crashHandlerPathC;
......
......@@ -31,7 +31,11 @@
#ifndef CRASHHANDLERSETUP_H
#define CRASHHANDLERSETUP_H
void setupCrashHandler();
void cleanupCrashHandler();
class CrashHandlerSetup
{
public:
CrashHandlerSetup();
~CrashHandlerSetup();
};
#endif // CRASHHANDLERSETUP_H
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment