summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiroslav Šulc <fordfrog@gentoo.org>2023-04-22 12:59:42 +0200
committerMiroslav Šulc <fordfrog@gentoo.org>2023-04-22 13:03:23 +0200
commitca86126321ec717b0bc04009904515dbc447e4e4 (patch)
tree45c50a74630c9b74ec416b628229e405abfe2a92 /media-gfx
parentdev-python/virtualenv: Stabilize 20.22.0 ALLARCHES, #904801 (diff)
downloadgentoo-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.patch76
-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}"