Flatpak Crash Fix when Fuzzy skin (#12611)

Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
This commit is contained in:
Rodrigo Faselli
2026-03-05 14:22:47 -03:00
committed by GitHub
parent 28649f498d
commit a5b8f4608f
2 changed files with 6 additions and 5 deletions

View File

@@ -257,8 +257,9 @@ SplittedLine do_split_line(const ClipperZUtils::ZPath& path, const ExPolygons& c
idx++;
} else {
if (!is_src(node.front()->front())) {
const auto& last = result.back();
if (result.empty() || last.get_src_index() != to_src_idx(p)) {
if (result.empty() || result.back().get_src_index() != to_src_idx(p)) {
//const auto& last = result.back();
//if (result.empty() || last.get_src_index() != to_src_idx(p)) {
result.emplace_back(to_point(p), false, idx);
}
}

View File

@@ -406,12 +406,12 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
fuzzy_extrusion_line(segment, slice_z, r.first, false);
// Orca: only add non fuzzy point if it's not in the extrusion closing point.
if (extrusion->junctions.front().p != front.p) {
if (!extrusion->junctions.empty() && extrusion->junctions.front().p != front.p) {
extrusion->junctions.push_back(front);
}
extrusion->junctions.insert(extrusion->junctions.end(), segment.begin(), segment.end());
// Orca: only add non fuzzy point if it's not in the extrusion closing point.
if (extrusion->junctions.back().p != front.p) {
if (!extrusion->junctions.empty() && extrusion->junctions.back().p != front.p) {
extrusion->junctions.push_back(back);
}
segment.clear();
@@ -442,7 +442,7 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
}
//Orca: ensure the loop is closed after fuzzy
if (extrusion->junctions.front().p != extrusion->junctions.back().p) {
if (!extrusion->junctions.empty() && extrusion->junctions.front().p != extrusion->junctions.back().p) {
extrusion->junctions.back().p = extrusion->junctions.front().p;
extrusion->junctions.back().w = extrusion->junctions.front().w;
}