mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-13 03:57:34 +00:00
refactor: convert m_fila_system from raw pointer to shared_ptr
Matches BambuStudio commit c8f70c6ca. DevFilaSystem* m_fila_system becomes std::shared_ptr<DevFilaSystem>, enabling proper shared ownership for the AMS drying control feature without no-op deleter hacks. - DeviceManager.hpp: m_fila_system and GetFilaSystem() use shared_ptr - DeviceManager.cpp: std::make_shared allocation, remove manual delete, add .get() to ParseV1_0 calls - MoonrakerPrinterAgent.cpp: add .get() to GetFilaSystem() in ParseV1_0
This commit is contained in:
@@ -566,7 +566,7 @@ MachineObject::MachineObject(DeviceManager* manager, NetworkAgent* agent, std::s
|
|||||||
m_extder_system = new DevExtderSystem(this);
|
m_extder_system = new DevExtderSystem(this);
|
||||||
m_extension_tool = DevExtensionTool::Create(this);
|
m_extension_tool = DevExtensionTool::Create(this);
|
||||||
m_nozzle_system = new DevNozzleSystem(this);
|
m_nozzle_system = new DevNozzleSystem(this);
|
||||||
m_fila_system = new DevFilaSystem(this);
|
m_fila_system = std::make_shared<DevFilaSystem>(this);
|
||||||
m_hms_system = new DevHMS(this);
|
m_hms_system = new DevHMS(this);
|
||||||
m_config = new DevConfig(this);
|
m_config = new DevConfig(this);
|
||||||
|
|
||||||
@@ -612,8 +612,6 @@ MachineObject::~MachineObject()
|
|||||||
delete m_ctrl;
|
delete m_ctrl;
|
||||||
m_ctrl = nullptr;
|
m_ctrl = nullptr;
|
||||||
|
|
||||||
delete m_fila_system;
|
|
||||||
m_fila_system = nullptr;
|
|
||||||
|
|
||||||
delete m_hms_system;
|
delete m_hms_system;
|
||||||
m_hms_system = nullptr;
|
m_hms_system = nullptr;
|
||||||
@@ -3723,7 +3721,7 @@ int MachineObject::parse_json(std::string tunnel, std::string payload, bool key_
|
|||||||
update_printer_preset_name();
|
update_printer_preset_name();
|
||||||
update_filament_list();
|
update_filament_list();
|
||||||
if (jj.contains("ams")) {
|
if (jj.contains("ams")) {
|
||||||
DevFilaSystemParser::ParseV1_0(jj, this, m_fila_system, key_field_only);
|
DevFilaSystemParser::ParseV1_0(jj, this, m_fila_system.get(), key_field_only);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vitrual tray*/
|
/* vitrual tray*/
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ private:
|
|||||||
std::shared_ptr<DevExtensionTool> m_extension_tool;
|
std::shared_ptr<DevExtensionTool> m_extension_tool;
|
||||||
DevExtderSystem* m_extder_system;
|
DevExtderSystem* m_extder_system;
|
||||||
DevNozzleSystem* m_nozzle_system;
|
DevNozzleSystem* m_nozzle_system;
|
||||||
DevFilaSystem* m_fila_system;
|
std::shared_ptr<DevFilaSystem> m_fila_system;
|
||||||
DevFan* m_fan;
|
DevFan* m_fan;
|
||||||
DevBed * m_bed;
|
DevBed * m_bed;
|
||||||
DevStorage* m_storage;
|
DevStorage* m_storage;
|
||||||
@@ -329,7 +329,7 @@ public:
|
|||||||
|
|
||||||
DevNozzleSystem* GetNozzleSystem() const { return m_nozzle_system;}
|
DevNozzleSystem* GetNozzleSystem() const { return m_nozzle_system;}
|
||||||
|
|
||||||
DevFilaSystem* GetFilaSystem() const { return m_fila_system;}
|
std::shared_ptr<DevFilaSystem> GetFilaSystem() const { return m_fila_system;}
|
||||||
bool HasAms() const;
|
bool HasAms() const;
|
||||||
|
|
||||||
DevLamp* GetLamp() const { return m_lamp; }
|
DevLamp* GetLamp() const { return m_lamp; }
|
||||||
|
|||||||
@@ -536,7 +536,7 @@ void MoonrakerPrinterAgent::build_ams_payload(int ams_count, int max_lane_index,
|
|||||||
print_json["ams"] = ams_json;
|
print_json["ams"] = ams_json;
|
||||||
|
|
||||||
// Call the parser to populate DevFilaSystem
|
// Call the parser to populate DevFilaSystem
|
||||||
DevFilaSystemParser::ParseV1_0(print_json, obj, obj->GetFilaSystem(), false);
|
DevFilaSystemParser::ParseV1_0(print_json, obj, obj->GetFilaSystem().get(), false);
|
||||||
BOOST_LOG_TRIVIAL(info) << "MoonrakerPrinterAgent::build_ams_payload: Parsed " << trays.size() << " trays";
|
BOOST_LOG_TRIVIAL(info) << "MoonrakerPrinterAgent::build_ams_payload: Parsed " << trays.size() << " trays";
|
||||||
|
|
||||||
// Set printer_type so update_sync_status() can match it against the preset's printer type.
|
// Set printer_type so update_sync_status() can match it against the preset's printer type.
|
||||||
|
|||||||
Reference in New Issue
Block a user