Browse Source

Fix m_importProperties not getting nulled (KICAD-6BJ).

pull/18/head
Jeff Young 3 months ago
parent
commit
caf6e23064
  1. 4
      libs/core/include/core/raii.h
  2. 16
      pcbnew/files.cpp

4
libs/core/include/core/raii.h

@ -37,8 +37,8 @@
class NULLER class NULLER
{ {
public: public:
NULLER( void*& aPtr )
: m_what( aPtr )
NULLER( void*& aPtr ) :
m_what( aPtr )
{} {}
~NULLER() ~NULLER()

16
pcbnew/files.cpp

@ -1258,6 +1258,8 @@ bool PCB_EDIT_FRAME::DoAutoSave()
bool PCB_EDIT_FRAME::importFile( const wxString& aFileName, int aFileType, bool PCB_EDIT_FRAME::importFile( const wxString& aFileName, int aFileType,
const std::map<std::string, UTF8>* aProperties ) const std::map<std::string, UTF8>* aProperties )
{ {
NULLER raiiNuller( (void*&) m_importProperties );
m_importProperties = aProperties; m_importProperties = aProperties;
switch( (PCB_IO_MGR::PCB_FILE_T) aFileType ) 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::EAGLE:
case PCB_IO_MGR::EASYEDA: case PCB_IO_MGR::EASYEDA:
case PCB_IO_MGR::EASYEDAPRO: case PCB_IO_MGR::EASYEDAPRO:
return OpenProjectFiles( std::vector<wxString>( 1, aFileName ),
KICTL_NONKICAD_ONLY | KICTL_IMPORT_LIB );
break;
return OpenProjectFiles( std::vector<wxString>( 1, aFileName ), KICTL_NONKICAD_ONLY | KICTL_IMPORT_LIB );
case PCB_IO_MGR::ALTIUM_DESIGNER: case PCB_IO_MGR::ALTIUM_DESIGNER:
case PCB_IO_MGR::ALTIUM_CIRCUIT_MAKER: case PCB_IO_MGR::ALTIUM_CIRCUIT_MAKER:
case PCB_IO_MGR::ALTIUM_CIRCUIT_STUDIO: case PCB_IO_MGR::ALTIUM_CIRCUIT_STUDIO:
case PCB_IO_MGR::SOLIDWORKS_PCB: case PCB_IO_MGR::SOLIDWORKS_PCB:
return OpenProjectFiles( std::vector<wxString>( 1, aFileName ),
KICTL_NONKICAD_ONLY );
return OpenProjectFiles( std::vector<wxString>( 1, aFileName ), KICTL_NONKICAD_ONLY );
default: break;
default:
return false;
} }
m_importProperties = nullptr;
return false;
} }

Loading…
Cancel
Save