fix: adapt belt sub-layer group emission to upstream m_writer unique_ptr

Upstream changed GCode::m_writer from a value to std::unique_ptr<GCodeWriter>;
the belt mixed_sub_layer_groups path still used value syntax and did not compile.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012ChxXYc6Dp46qAN9c2rQCe
This commit is contained in:
harrierpigeon
2026-08-30 23:31:21 -05:00
parent e341a9b84e
commit 4fab8d0b39

View File

@@ -7054,17 +7054,17 @@ LayerResult GCode::process_layer(
} }
if (m_enable_exclude_object) { if (m_enable_exclude_object) {
if (is_BBL_Printer()) { if (is_BBL_Printer()) {
m_writer.set_object_start_str( m_writer->set_object_start_str(
std::string("; start printing object, unique label id: ") + std::string("; start printing object, unique label id: ") +
std::to_string(instance_to_print.label_object_id) + "\n" + "M624 " + std::to_string(instance_to_print.label_object_id) + "\n" + "M624 " +
_encode_label_ids_to_base64({instance_to_print.label_object_id}) + "\n"); _encode_label_ids_to_base64({instance_to_print.label_object_id}) + "\n");
} else { } else {
const auto gflavor = print.config().gcode_flavor.value; const auto gflavor = print.config().gcode_flavor.value;
if (gflavor == gcfKlipper) { if (gflavor == gcfKlipper) {
m_writer.set_object_start_str(std::string("EXCLUDE_OBJECT_START NAME=") + m_writer->set_object_start_str(std::string("EXCLUDE_OBJECT_START NAME=") +
get_instance_name(&instance_to_print.print_object, inst.id) + "\n"); get_instance_name(&instance_to_print.print_object, inst.id) + "\n");
} else if (gflavor == gcfMarlinLegacy || gflavor == gcfMarlinFirmware || gflavor == gcfRepRapFirmware) { } else if (gflavor == gcfMarlinLegacy || gflavor == gcfMarlinFirmware || gflavor == gcfRepRapFirmware) {
m_writer.set_object_start_str(std::string("M486 S") + std::to_string(inst.unique_id) + "\n"); m_writer->set_object_start_str(std::string("M486 S") + std::to_string(inst.unique_id) + "\n");
} }
} }
} }
@@ -7276,20 +7276,20 @@ LayerResult GCode::process_layer(
} }
// --- Shared instance footer (mirrors Orca's main instance loop) --- // --- Shared instance footer (mirrors Orca's main instance loop) ---
if (!m_writer.is_object_start_str_empty()) { if (!m_writer->is_object_start_str_empty()) {
m_writer.set_object_start_str(""); m_writer->set_object_start_str("");
} else if (m_enable_exclude_object) { } else if (m_enable_exclude_object) {
if (is_BBL_Printer()) { if (is_BBL_Printer()) {
m_writer.set_object_end_str(std::string("; stop printing object, unique label id: ") + m_writer->set_object_end_str(std::string("; stop printing object, unique label id: ") +
std::to_string(instance_to_print.label_object_id) + "\n" + std::to_string(instance_to_print.label_object_id) + "\n" +
"M625\n"); "M625\n");
} else { } else {
const auto gflavor = print.config().gcode_flavor.value; const auto gflavor = print.config().gcode_flavor.value;
if (gflavor == gcfKlipper) { if (gflavor == gcfKlipper) {
m_writer.set_object_end_str(std::string("EXCLUDE_OBJECT_END NAME=") + m_writer->set_object_end_str(std::string("EXCLUDE_OBJECT_END NAME=") +
get_instance_name(&instance_to_print.print_object, inst.id) + "\n"); get_instance_name(&instance_to_print.print_object, inst.id) + "\n");
} else if (gflavor == gcfMarlinLegacy || gflavor == gcfMarlinFirmware || gflavor == gcfRepRapFirmware) { } else if (gflavor == gcfMarlinLegacy || gflavor == gcfMarlinFirmware || gflavor == gcfRepRapFirmware) {
m_writer.set_object_end_str(std::string("M486 S-1\n")); m_writer->set_object_end_str(std::string("M486 S-1\n"));
} }
} }
} }
@@ -7302,7 +7302,7 @@ LayerResult GCode::process_layer(
// wipe tower's add_object_end_labels may consume it into a local temp string and the // wipe tower's add_object_end_labels may consume it into a local temp string and the
// M625 would be lost for BBL printers. // M625 would be lost for BBL printers.
if (!layer_tools.mixed_sub_layer_groups.empty()) { if (!layer_tools.mixed_sub_layer_groups.empty()) {
m_writer.add_object_end_labels(gcode); m_writer->add_object_end_labels(gcode);
m_nominal_z = print_z; m_nominal_z = print_z;
m_need_change_layer_lift_z = true; m_need_change_layer_lift_z = true;
} }