From d3fdb0a0e64395b5897604f183110eb7a1d02d84 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Thu, 29 Aug 2019 10:10:09 +0200 Subject: [PATCH] Fix memory leak. Also removed some unnecessary aliases. --- src/libslic3r/SLAPrint.cpp | 11 ++++++----- src/libslic3r/SLAPrint.hpp | 5 +---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index d8fcf66c18..78b6804e23 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -454,7 +454,7 @@ SLAPrint::ApplyStatus SLAPrint::apply(const Model &model, DynamicPrintConfig con } if(m_objects.empty()) { - m_printer.release(); + m_printer.reset(); m_printer_input.clear(); m_print_statistics.clear(); } @@ -1397,13 +1397,14 @@ void SLAPrint::process() { // create a raster printer for the current print parameters double layerh = m_default_object_config.layer_height.getFloat(); - m_printer.reset(new SLAPrinter(m_printer_config, - m_material_config, - layerh)); + m_printer.reset(new sla::SLARasterWriter(m_printer_config, + m_material_config, + layerh)); } // Allocate space for all the layers - SLAPrinter& printer = *m_printer; + sla::SLARasterWriter &printer = *m_printer; + auto lvlcnt = unsigned(m_printer_input.size()); printer.layers(lvlcnt); diff --git a/src/libslic3r/SLAPrint.hpp b/src/libslic3r/SLAPrint.hpp index e8cdac1b86..ec3b2d02eb 100644 --- a/src/libslic3r/SLAPrint.hpp +++ b/src/libslic3r/SLAPrint.hpp @@ -422,9 +422,6 @@ public: const std::vector& print_layers() const { return m_printer_input; } private: - using SLAPrinter = sla::SLARasterWriter; - using SLAPrinterPtr = std::unique_ptr; - // Implement same logic as in SLAPrintObject bool invalidate_step(SLAPrintStep st); @@ -443,7 +440,7 @@ private: std::vector m_printer_input; // The printer itself - SLAPrinterPtr m_printer; + std::unique_ptr m_printer; // Estimated print time, material consumed. SLAPrintStatistics m_print_statistics;