Remove a Message_Printer holding a stale REPORTER pointer from OCCT.

Fixes KICAD-V8A
This commit is contained in:
Alex Shvartzkop
2025-08-20 13:57:48 +03:00
parent 91e5e81bb4
commit eecf0cd685
+13 -1
View File
@@ -815,8 +815,20 @@ bool EXPORTER_STEP::Export()
int64_t stats_startExportTime = GetRunningMicroSecs();
// setup opencascade message log
struct SCOPED_PRINTER
{
Handle( Message_Printer ) m_handle;
SCOPED_PRINTER( const Handle( Message_Printer ) & aHandle ) : m_handle( aHandle )
{
Message::DefaultMessenger()->AddPrinter( m_handle );
};
~SCOPED_PRINTER() { Message::DefaultMessenger()->RemovePrinter( m_handle ); }
};
Message::DefaultMessenger()->RemovePrinters( STANDARD_TYPE( Message_PrinterOStream ) );
Message::DefaultMessenger()->AddPrinter( new KICAD_PRINTER( m_reporter ) );
SCOPED_PRINTER occtPrinter( new KICAD_PRINTER( m_reporter ) );
m_reporter->Report( wxT( "Determining PCB data.\n" ), RPT_SEVERITY_DEBUG );