diff --git a/eeschema/libedit/libedit_undo_redo.cpp b/eeschema/libedit/libedit_undo_redo.cpp index 6718141428..c038c1e867 100644 --- a/eeschema/libedit/libedit_undo_redo.cpp +++ b/eeschema/libedit/libedit_undo_redo.cpp @@ -38,6 +38,9 @@ void LIB_EDIT_FRAME::SaveCopyInUndoList( EDA_ITEM* ItemToCopy, UNDO_REDO_T undoT { wxASSERT_MSG( !aAppend, "Append not needed/supported for LibEdit" ); + if( !ItemToCopy ) + return; + LIB_PART* CopyItem; PICKED_ITEMS_LIST* lastcmd = new PICKED_ITEMS_LIST(); diff --git a/eeschema/tools/ee_tool_base.h b/eeschema/tools/ee_tool_base.h index ca3a1822e8..47059fc48f 100644 --- a/eeschema/tools/ee_tool_base.h +++ b/eeschema/tools/ee_tool_base.h @@ -127,17 +127,20 @@ protected: if( m_isLibEdit ) { LIB_EDIT_FRAME* editFrame = dynamic_cast( m_frame ); - editFrame->SaveCopyInUndoList( (LIB_ITEM*) aItem, aType, aAppend ); + wxASSERT( editFrame ); + + editFrame->SaveCopyInUndoList( dynamic_cast( aItem ), aType, aAppend ); } else { SCH_EDIT_FRAME* editFrame = dynamic_cast( m_frame ); + wxASSERT( editFrame ); if( itemType == SCH_PIN_T || itemType == SCH_FIELD_T || itemType == SCH_SHEET_PIN_T ) - editFrame->SaveCopyInUndoList( (SCH_ITEM*) aItem->GetParent(), UR_CHANGED, - aAppend ); + editFrame->SaveCopyInUndoList( + dynamic_cast( aItem->GetParent() ), UR_CHANGED, aAppend ); else - editFrame->SaveCopyInUndoList( (SCH_ITEM*) aItem, aType, aAppend ); + editFrame->SaveCopyInUndoList( dynamic_cast( aItem ), aType, aAppend ); } if( selected && aItem->HasFlag( TEMP_SELECTED ) )