From 59e7b81e60078c07ef69d763e2a8d74de77f62c8 Mon Sep 17 00:00:00 2001 From: Bernd Wachter Date: Fri, 11 Apr 2014 12:12:12 +0300 Subject: [PATCH] [ssu] Read loglevel through QSettings to avoid recursion/crash --- libssu/ssucoreconfig.cpp | 1 - libssu/ssulog.cpp | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libssu/ssucoreconfig.cpp b/libssu/ssucoreconfig.cpp index ef84120..060a55c 100644 --- a/libssu/ssucoreconfig.cpp +++ b/libssu/ssucoreconfig.cpp @@ -12,7 +12,6 @@ #include #include "ssucoreconfig.h" -#include "ssulog.h" SsuCoreConfig *SsuCoreConfig::ssuCoreConfig = 0; diff --git a/libssu/ssulog.cpp b/libssu/ssulog.cpp index 32f7061..8066481 100644 --- a/libssu/ssulog.cpp +++ b/libssu/ssulog.cpp @@ -27,11 +27,13 @@ void SsuLog::print(int priority, QString message){ QByteArray ba = message.toUtf8(); const char *ca = ba.constData(); + // directly go through qsettings here to avoid recursive invocation + // of coreconfig / ssulog if (ssuLogLevel == -1){ - SsuCoreConfig *settings = SsuCoreConfig::instance(); + QSettings settings(SSU_CONFIGURATION, QSettings::IniFormat); - if (settings->contains("loglevel")) - ssuLog->ssuLogLevel = settings->value("loglevel").toInt(); + if (settings.contains("loglevel")) + ssuLog->ssuLogLevel = settings.value("loglevel").toInt(); else ssuLog->ssuLogLevel = LOG_ERR; }