DIALOG_CHOOSE_COMPONENT: fix a crash when the option "footprint view" is activated.

The crash was due a not tested null pointer.

Fixes: lp:1839282
https://bugs.launchpad.net/kicad/+bug/1839282
This commit is contained in:
jean-pierre charras 2019-08-07 18:06:27 +02:00
parent 38fc51c3b6
commit 4e90b2d48b
1 changed files with 10 additions and 5 deletions

View File

@ -173,8 +173,10 @@ DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT( SCH_BASE_FRAME* aParent, const
m_fp_sel_ctrl->Bind( EVT_FOOTPRINT_SELECTED, m_fp_sel_ctrl->Bind( EVT_FOOTPRINT_SELECTED,
&DIALOG_CHOOSE_COMPONENT::OnFootprintSelected, this ); &DIALOG_CHOOSE_COMPONENT::OnFootprintSelected, this );
if( m_details )
m_details->Connect( wxEVT_CHAR_HOOK, m_details->Connect( wxEVT_CHAR_HOOK,
wxKeyEventHandler( DIALOG_CHOOSE_COMPONENT::OnCharHook ), NULL, this ); wxKeyEventHandler( DIALOG_CHOOSE_COMPONENT::OnCharHook ),
NULL, this );
} }
@ -193,8 +195,10 @@ DIALOG_CHOOSE_COMPONENT::~DIALOG_CHOOSE_COMPONENT()
m_fp_sel_ctrl->Unbind( EVT_FOOTPRINT_SELECTED, m_fp_sel_ctrl->Unbind( EVT_FOOTPRINT_SELECTED,
&DIALOG_CHOOSE_COMPONENT::OnFootprintSelected, this ); &DIALOG_CHOOSE_COMPONENT::OnFootprintSelected, this );
if( m_details )
m_details->Disconnect( wxEVT_CHAR_HOOK, m_details->Disconnect( wxEVT_CHAR_HOOK,
wxKeyEventHandler( DIALOG_CHOOSE_COMPONENT::OnCharHook ), NULL, this ); wxKeyEventHandler( DIALOG_CHOOSE_COMPONENT::OnCharHook ),
NULL, this );
// I am not sure the following two lines are necessary, but they will not hurt anyone // I am not sure the following two lines are necessary, but they will not hurt anyone
m_dbl_click_timer->Stop(); m_dbl_click_timer->Stop();
@ -266,7 +270,8 @@ void DIALOG_CHOOSE_COMPONENT::OnInitDialog( wxInitDialogEvent& aEvent )
void DIALOG_CHOOSE_COMPONENT::OnCharHook( wxKeyEvent& e ) void DIALOG_CHOOSE_COMPONENT::OnCharHook( wxKeyEvent& e )
{ {
if( e.GetKeyCode() == 'C' && e.ControlDown() && !e.AltDown() && !e.ShiftDown() && !e.MetaDown() ) if( m_details && e.GetKeyCode() == 'C' && e.ControlDown() &&
!e.AltDown() && !e.ShiftDown() && !e.MetaDown() )
{ {
wxString txt = m_details->SelectionToText(); wxString txt = m_details->SelectionToText();