From caf6e2306491407bbc511acffd534f278bad42a7 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Mon, 14 Jul 2025 13:06:35 +0100 Subject: [PATCH] Fix m_importProperties not getting nulled (KICAD-6BJ). --- libs/core/include/core/raii.h | 4 ++-- pcbnew/files.cpp | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/libs/core/include/core/raii.h b/libs/core/include/core/raii.h index d4aaedd848..9fefd6d38e 100644 --- a/libs/core/include/core/raii.h +++ b/libs/core/include/core/raii.h @@ -37,8 +37,8 @@ class NULLER { public: - NULLER( void*& aPtr ) - : m_what( aPtr ) + NULLER( void*& aPtr ) : + m_what( aPtr ) {} ~NULLER() diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index 5d9bf82432..9249c29949 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -1258,6 +1258,8 @@ bool PCB_EDIT_FRAME::DoAutoSave() bool PCB_EDIT_FRAME::importFile( const wxString& aFileName, int aFileType, const std::map* aProperties ) { + NULLER raiiNuller( (void*&) m_importProperties ); + m_importProperties = aProperties; switch( (PCB_IO_MGR::PCB_FILE_T) aFileType ) @@ -1266,23 +1268,17 @@ bool PCB_EDIT_FRAME::importFile( const wxString& aFileName, int aFileType, case PCB_IO_MGR::EAGLE: case PCB_IO_MGR::EASYEDA: case PCB_IO_MGR::EASYEDAPRO: - return OpenProjectFiles( std::vector( 1, aFileName ), - KICTL_NONKICAD_ONLY | KICTL_IMPORT_LIB ); - break; + return OpenProjectFiles( std::vector( 1, aFileName ), KICTL_NONKICAD_ONLY | KICTL_IMPORT_LIB ); case PCB_IO_MGR::ALTIUM_DESIGNER: case PCB_IO_MGR::ALTIUM_CIRCUIT_MAKER: case PCB_IO_MGR::ALTIUM_CIRCUIT_STUDIO: case PCB_IO_MGR::SOLIDWORKS_PCB: - return OpenProjectFiles( std::vector( 1, aFileName ), - KICTL_NONKICAD_ONLY ); + return OpenProjectFiles( std::vector( 1, aFileName ), KICTL_NONKICAD_ONLY ); - default: break; + default: + return false; } - - m_importProperties = nullptr; - - return false; }