clang-tidy: Avoid potential memory leak in BufferViewManager
[quassel.git] / src / common / bufferviewmanager.cpp
index 64af01e..41cdd46 100644 (file)
@@ -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);
 }
 
 
@@ -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>());
     }
 }