mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-12 18:29:05 +08:00
SPE-1865: Don't insert an empty ExtrusionEntityCollection because it causes a crash.
The approach to fixing the crash in 649c1083576b6bf3e0038016e16fa9ecd691cfb9 wasn't correct and prevented sorting extrusions, as reported in SPE-2007.
This commit is contained in:
parent
32c779090f
commit
f4d3886c63
@ -544,9 +544,8 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||||||
flow_width = new_flow.width();
|
flow_width = new_flow.width();
|
||||||
}
|
}
|
||||||
// Save into layer.
|
// Save into layer.
|
||||||
ExtrusionEntityCollection* eec = nullptr;
|
ExtrusionEntityCollection *eec = new ExtrusionEntityCollection();
|
||||||
auto fill_begin = uint32_t(layerm.fills().size());
|
auto fill_begin = uint32_t(layerm.fills().size());
|
||||||
layerm.m_fills.entities.push_back(eec = new ExtrusionEntityCollection());
|
|
||||||
// Only concentric fills are not sorted.
|
// Only concentric fills are not sorted.
|
||||||
eec->no_sort = f->no_sort();
|
eec->no_sort = f->no_sort();
|
||||||
if (params.use_arachne) {
|
if (params.use_arachne) {
|
||||||
@ -563,6 +562,11 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!eec->empty())
|
||||||
|
layerm.m_fills.entities.push_back(eec);
|
||||||
|
else
|
||||||
|
delete eec;
|
||||||
|
|
||||||
thick_polylines.clear();
|
thick_polylines.clear();
|
||||||
} else {
|
} else {
|
||||||
extrusion_entities_append_paths(
|
extrusion_entities_append_paths(
|
||||||
@ -570,6 +574,7 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||||||
ExtrusionAttributes{ surface_fill.params.extrusion_role,
|
ExtrusionAttributes{ surface_fill.params.extrusion_role,
|
||||||
ExtrusionFlow{ flow_mm3_per_mm, float(flow_width), surface_fill.params.flow.height() }
|
ExtrusionFlow{ flow_mm3_per_mm, float(flow_width), surface_fill.params.flow.height() }
|
||||||
});
|
});
|
||||||
|
layerm.m_fills.entities.push_back(eec);
|
||||||
}
|
}
|
||||||
insert_fills_into_islands(*this, uint32_t(surface_fill.region_id), fill_begin, uint32_t(layerm.fills().size()));
|
insert_fills_into_islands(*this, uint32_t(surface_fill.region_id), fill_begin, uint32_t(layerm.fills().size()));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user