diff options
author | Miroslav Šulc <fordfrog@gentoo.org> | 2023-04-22 12:59:42 +0200 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2023-04-22 13:03:23 +0200 |
commit | ca86126321ec717b0bc04009904515dbc447e4e4 (patch) | |
tree | 45c50a74630c9b74ec416b628229e405abfe2a92 /media-gfx | |
parent | dev-python/virtualenv: Stabilize 20.22.0 ALLARCHES, #904801 (diff) | |
download | gentoo-ca86126321ec717b0bc04009904515dbc447e4e4.tar.gz gentoo-ca86126321ec717b0bc04009904515dbc447e4e4.tar.bz2 gentoo-ca86126321ec717b0bc04009904515dbc447e4e4.zip |
media-gfx/prusaslicer: fixed crash during slicing
thanks to Caleb Jorden for the fix
Bug: https://bugs.gentoo.org/900340
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'media-gfx')
-rw-r--r-- | media-gfx/prusaslicer/files/prusaslicer-2.5.2-fix-slicing.patch | 76 | ||||
-rw-r--r-- | media-gfx/prusaslicer/prusaslicer-2.5.2-r1.ebuild (renamed from media-gfx/prusaslicer/prusaslicer-2.5.2.ebuild) | 1 |
2 files changed, 77 insertions, 0 deletions
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.5.2-fix-slicing.patch b/media-gfx/prusaslicer/files/prusaslicer-2.5.2-fix-slicing.patch new file mode 100644 index 000000000000..ae85057f10bd --- /dev/null +++ b/media-gfx/prusaslicer/files/prusaslicer-2.5.2-fix-slicing.patch @@ -0,0 +1,76 @@ +diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp +index f8fc2e5a7..c74ee32dd 100644 +--- a/src/libslic3r/GCode.cpp ++++ b/src/libslic3r/GCode.cpp +@@ -1551,27 +1551,27 @@ void GCode::process_layers( + } + }); + const auto spiral_vase = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order, +- [&spiral_vase = *this->m_spiral_vase](LayerResult in) -> LayerResult { ++ [spiral_vase = this->m_spiral_vase.get()](LayerResult in) -> LayerResult { + if (in.nop_layer_result) + return in; + +- spiral_vase.enable(in.spiral_vase_enable); +- return { spiral_vase.process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush}; ++ spiral_vase->enable(in.spiral_vase_enable); ++ return { spiral_vase->process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush}; + }); + const auto pressure_equalizer = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order, +- [&pressure_equalizer = *this->m_pressure_equalizer](LayerResult in) -> LayerResult { +- return pressure_equalizer.process_layer(std::move(in)); ++ [pressure_equalizer = this->m_pressure_equalizer.get()](LayerResult in) -> LayerResult { ++ return pressure_equalizer->process_layer(std::move(in)); + }); + const auto cooling = tbb::make_filter<LayerResult, std::string>(slic3r_tbb_filtermode::serial_in_order, +- [&cooling_buffer = *this->m_cooling_buffer](LayerResult in) -> std::string { ++ [cooling_buffer = this->m_cooling_buffer.get()](LayerResult in) -> std::string { + if (in.nop_layer_result) + return in.gcode; + +- return cooling_buffer.process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush); ++ return cooling_buffer->process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush); + }); + const auto find_replace = tbb::make_filter<std::string, std::string>(slic3r_tbb_filtermode::serial_in_order, +- [&self = *this->m_find_replace](std::string s) -> std::string { +- return self.process_layer(std::move(s)); ++ [find_replace = this->m_find_replace.get()](std::string s) -> std::string { ++ return find_replace->process_layer(std::move(s)); + }); + const auto output = tbb::make_filter<std::string, void>(slic3r_tbb_filtermode::serial_in_order, + [&output_stream](std::string s) { output_stream.write(s); } +@@ -1633,25 +1633,25 @@ void GCode::process_layers( + } + }); + const auto spiral_vase = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order, +- [&spiral_vase = *this->m_spiral_vase](LayerResult in)->LayerResult { ++ [spiral_vase = this->m_spiral_vase.get()](LayerResult in)->LayerResult { + if (in.nop_layer_result) + return in; +- spiral_vase.enable(in.spiral_vase_enable); +- return { spiral_vase.process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush }; ++ spiral_vase->enable(in.spiral_vase_enable); ++ return { spiral_vase->process_layer(std::move(in.gcode)), in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush }; + }); + const auto pressure_equalizer = tbb::make_filter<LayerResult, LayerResult>(slic3r_tbb_filtermode::serial_in_order, +- [&pressure_equalizer = *this->m_pressure_equalizer](LayerResult in) -> LayerResult { +- return pressure_equalizer.process_layer(std::move(in)); ++ [pressure_equalizer = this->m_pressure_equalizer.get()](LayerResult in) -> LayerResult { ++ return pressure_equalizer->process_layer(std::move(in)); + }); + const auto cooling = tbb::make_filter<LayerResult, std::string>(slic3r_tbb_filtermode::serial_in_order, +- [&cooling_buffer = *this->m_cooling_buffer](LayerResult in)->std::string { ++ [cooling_buffer = this->m_cooling_buffer.get()](LayerResult in)->std::string { + if (in.nop_layer_result) + return in.gcode; +- return cooling_buffer.process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush); ++ return cooling_buffer->process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush); + }); + const auto find_replace = tbb::make_filter<std::string, std::string>(slic3r_tbb_filtermode::serial_in_order, +- [&self = *this->m_find_replace](std::string s) -> std::string { +- return self.process_layer(std::move(s)); ++ [find_replace = this->m_find_replace.get()](std::string s) -> std::string { ++ return find_replace->process_layer(std::move(s)); + }); + const auto output = tbb::make_filter<std::string, void>(slic3r_tbb_filtermode::serial_in_order, + [&output_stream](std::string s) { output_stream.write(s); } diff --git a/media-gfx/prusaslicer/prusaslicer-2.5.2.ebuild b/media-gfx/prusaslicer/prusaslicer-2.5.2-r1.ebuild index 09476833706a..e0a2d4fd7cfd 100644 --- a/media-gfx/prusaslicer/prusaslicer-2.5.2.ebuild +++ b/media-gfx/prusaslicer/prusaslicer-2.5.2-r1.ebuild @@ -54,6 +54,7 @@ PATCHES=( "${FILESDIR}/${PN}-2.5.0_rc1-cereal-1.3.1.patch" "${FILESDIR}/${PN}-2.5.0_rc1-fix-tests.patch" "${FILESDIR}/${PN}-2.5.0_boost-1.81-std-wxString-to-std-wstring.patch" + "${FILESDIR}/${PN}-2.5.2-fix-slicing.patch" ) S="${WORKDIR}/${MY_PN}-version_${MY_PV}" |