clang-tidy: Avoid potential memory leak in BufferViewManager
[quassel.git] / src / common / bufferviewmanager.cpp
index 33ba528..41cdd46 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2015 by the Quassel Project                        *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -47,25 +47,28 @@ BufferViewConfig *BufferViewManager::bufferViewConfigFactory(int bufferViewConfi
 }
 
 
-void BufferViewManager::addBufferViewConfig(BufferViewConfig *config)
+void BufferViewManager::addBufferViewConfig(int bufferViewConfigId)
 {
-    if (_bufferViewConfigs.contains(config->bufferViewId()))
+    if (_bufferViewConfigs.contains(bufferViewConfigId)) {
         return;
+    }
 
-    _proxy->synchronize(config);
-    _bufferViewConfigs[config->bufferViewId()] = config;
-    int bufferViewId = config->bufferViewId();
-    SYNC_OTHER(addBufferViewConfig, ARG(bufferViewId))
-    emit bufferViewConfigAdded(bufferViewId);
+    addBufferViewConfig(bufferViewConfigFactory(bufferViewConfigId));
 }
 
 
-void BufferViewManager::addBufferViewConfig(int bufferViewConfigId)
+void BufferViewManager::addBufferViewConfig(BufferViewConfig *config)
 {
-    if (_bufferViewConfigs.contains(bufferViewConfigId))
+    if (_bufferViewConfigs.contains(config->bufferViewId())) {
+        delete config;
         return;
+    }
 
-    addBufferViewConfig(bufferViewConfigFactory(bufferViewConfigId));
+    _proxy->synchronize(config);
+    _bufferViewConfigs[config->bufferViewId()] = config;
+    int bufferViewId = config->bufferViewId();
+    SYNC_OTHER(addBufferViewConfig, ARG(bufferViewId))
+    emit bufferViewConfigAdded(bufferViewId);
 }
 
 
@@ -88,7 +91,7 @@ QVariantList BufferViewManager::initBufferViewIds() const
     BufferViewConfigHash::const_iterator iterEnd = _bufferViewConfigs.constEnd();
     while (iter != iterEnd) {
         bufferViewIds << (*iter)->bufferViewId();
-        iter++;
+        ++iter;
     }
     return bufferViewIds;
 }
@@ -96,10 +99,7 @@ QVariantList BufferViewManager::initBufferViewIds() const
 
 void BufferViewManager::initSetBufferViewIds(const QVariantList bufferViewIds)
 {
-    QVariantList::const_iterator iter = bufferViewIds.constBegin();
-    QVariantList::const_iterator iterEnd = bufferViewIds.constEnd();
-    while (iter != iterEnd) {
-        newBufferViewConfig((*iter).value<int>());
-        iter++;
+    for (auto &&id : bufferViewIds) {
+        addBufferViewConfig(id.value<int>());
     }
 }