qa: Don't return a const ref from Settings::localValue()
authorManuel Nickschas <sputnick@quassel-irc.org>
Mon, 10 Sep 2018 21:24:07 +0000 (23:24 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Mon, 10 Sep 2018 23:46:55 +0000 (01:46 +0200)
Stumbled on this by accident because one particular CI configuration
warned about Settings::localValue() returning a stack reference
(may happen if the default value (which is a const ref itself) is
returned).

Not sure why I don't see this warning in my own setup, but it's
legitimate; thus fix the issue.

src/common/settings.cpp
src/common/settings.h

index d742af1..2330f45 100644 (file)
@@ -195,7 +195,7 @@ void Settings::setLocalValue(const QString &key, const QVariant &data)
 }
 
 
 }
 
 
-const QVariant &Settings::localValue(const QString &key, const QVariant &def)
+QVariant Settings::localValue(const QString &key, const QVariant &def)
 {
     QString normKey = normalizedKey(group, key);
     if (!isCached(normKey)) {
 {
     QString normKey = normalizedKey(group, key);
     if (!isCached(normKey)) {
index 625291e..681e5b2 100644 (file)
@@ -108,7 +108,7 @@ protected:
     virtual QStringList localChildGroups(const QString &rootkey = QString());
 
     virtual void setLocalValue(const QString &key, const QVariant &data);
     virtual QStringList localChildGroups(const QString &rootkey = QString());
 
     virtual void setLocalValue(const QString &key, const QVariant &data);
-    virtual const QVariant &localValue(const QString &key, const QVariant &def = QVariant());
+    virtual QVariant localValue(const QString &key, const QVariant &def = QVariant());
 
     /**
      * Gets if a key exists in settings
 
     /**
      * Gets if a key exists in settings