From 3c14d883a1b9a73ae04324a1dc062791e5721a2b Mon Sep 17 00:00:00 2001
From: YuSanka <yusanka@gmail.com>
Date: Tue, 8 Sep 2020 16:11:01 +0200
Subject: [PATCH] PhysicalPrinterDialog: Fixed memory leak

---
 src/slic3r/GUI/PhysicalPrinterDialog.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp
index ca2d62556..3d832ae56 100644
--- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp
+++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp
@@ -187,8 +187,7 @@ PhysicalPrinterDialog::PhysicalPrinterDialog(wxString printer_name) :
     PhysicalPrinter* printer = printers.find_printer(into_u8(printer_name));
     if (!printer) {
         const Preset& preset = wxGetApp().preset_bundle->printers.get_edited_preset();
-        //FIXME Vojtech: WTF??? Memory leak?
-        printer = new PhysicalPrinter(into_u8(printer_name), m_printer.config, preset);
+        m_printer = PhysicalPrinter(into_u8(printer_name), m_printer.config, preset);
         // if printer_name is empty it means that new printer is created, so enable all items in the preset list
         m_presets.emplace_back(new PresetForPrinter(this, preset.name));
     }
@@ -197,9 +196,8 @@ PhysicalPrinterDialog::PhysicalPrinterDialog(wxString printer_name) :
         const std::set<std::string>& preset_names = printer->get_preset_names();
         for (const std::string& preset_name : preset_names)
             m_presets.emplace_back(new PresetForPrinter(this, preset_name));
+        m_printer = *printer;
     }
-    assert(printer);
-    m_printer = *printer;
 
     if (m_presets.size() == 1)
         m_presets.front()->SuppressDelete();