Browse Source

nullptr safety

pull/18/head
Jeff Young 3 months ago
parent
commit
57f3f22aa4
  1. 20
      3d-viewer/3d_navlib/nl_3d_viewer_plugin_impl.cpp
  2. 15
      eeschema/navlib/nl_schematic_plugin_impl.cpp
  3. 6
      gerbview/navlib/nl_gerbview_plugin_impl.cpp
  4. 4
      pagelayout_editor/navlib/nl_pl_editor_plugin_impl.cpp
  5. 15
      pcbnew/navlib/nl_pcbnew_plugin_impl.cpp

20
3d-viewer/3d_navlib/nl_3d_viewer_plugin_impl.cpp

@ -544,9 +544,7 @@ long NL_3D_VIEWER_PLUGIN_IMPL::SetHitSelectionOnly( bool onlySelection )
long NL_3D_VIEWER_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
{
if( commandId.empty() )
{
return 0;
}
std::list<TOOL_ACTION*> actions = ACTION_MANAGER::GetActionList();
TOOL_ACTION* context = nullptr;
@ -557,9 +555,7 @@ long NL_3D_VIEWER_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
std::string nm = action->GetName();
if( commandId == nm )
{
context = action;
}
}
if( context != nullptr )
@ -568,27 +564,21 @@ long NL_3D_VIEWER_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
// Only allow command execution if the window is enabled. i.e. there is not a modal dialog
// currently active.
TOOLS_HOLDER* tools_holder = nullptr;
if( parent->IsEnabled() && ( tools_holder = dynamic_cast<TOOLS_HOLDER*>( parent ) ) )
if( parent && parent->IsEnabled() )
{
TOOL_MANAGER* tool_manager = tools_holder->GetToolManager();
TOOLS_HOLDER* tools_holder = dynamic_cast<TOOLS_HOLDER*>( parent );
TOOL_MANAGER* tool_manager = tools_holder ? tools_holder->GetToolManager() : nullptr;
if( tool_manager == nullptr )
{
if( !tool_manager )
return navlib::make_result_code( navlib::navlib_errc::invalid_operation );
}
// Get the selection to use to test if the action is enabled
SELECTION& sel = tool_manager->GetToolHolder()->GetCurrentSelection();
bool runAction = true;
if( const ACTION_CONDITIONS* aCond =
tool_manager->GetActionManager()->GetCondition( *context ) )
{
if( const ACTION_CONDITIONS* aCond = tool_manager->GetActionManager()->GetCondition( *context ) )
runAction = aCond->enableCondition( sel );
}
if( runAction )
{

15
eeschema/navlib/nl_schematic_plugin_impl.cpp

@ -432,21 +432,22 @@ long NL_SCHEMATIC_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
// Only allow command execution if the window is enabled. i.e. there is not a modal dialog
// currently active.
if( parent->IsEnabled() )
if( parent && parent->IsEnabled() )
{
TOOL_MANAGER* tool_manager = static_cast<SCH_BASE_FRAME*>( parent )->GetToolManager();
TOOLS_HOLDER* tools_holder = dynamic_cast<TOOLS_HOLDER*>( parent );
TOOL_MANAGER* tool_manager = tools_holder ? tools_holder->GetToolManager() : nullptr;
// Only allow for command execution if the tool manager is accessible.
if( !tool_manager )
return navlib::make_result_code( navlib::navlib_errc::invalid_operation );
// Get the selection to use to test if the action is enabled
SELECTION& sel = tool_manager->GetToolHolder()->GetCurrentSelection();
bool runAction = true;
if( const ACTION_CONDITIONS* aCond =
tool_manager->GetActionManager()->GetCondition( *context ) )
{
if( const ACTION_CONDITIONS* aCond = tool_manager->GetActionManager()->GetCondition( *context ) )
runAction = aCond->enableCondition( sel );
}
if( runAction )
tool_manager->RunAction( *context );

6
gerbview/navlib/nl_gerbview_plugin_impl.cpp

@ -432,7 +432,8 @@ long NL_GERBVIEW_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
if( !parent || !parent->IsEnabled() )
return navlib::make_result_code( navlib::navlib_errc::invalid_operation );
TOOL_MANAGER* tool_manager = dynamic_cast<TOOLS_HOLDER*>( parent )->GetToolManager();
TOOLS_HOLDER* tools_holder = dynamic_cast<TOOLS_HOLDER*>( parent );
TOOL_MANAGER* tool_manager = tools_holder ? tools_holder->GetToolManager() : nullptr;
// Only allow for command execution if the tool manager is accessible.
if( !tool_manager )
@ -448,8 +449,7 @@ long NL_GERBVIEW_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
// Get the selection to use to test if the action is enabled
const SELECTION& sel = tool_manager->GetToolHolder()->GetCurrentSelection();
const ACTION_CONDITIONS* aCond =
tool_manager->GetActionManager()->GetCondition( *action );
const ACTION_CONDITIONS* aCond = tool_manager->GetActionManager()->GetCondition( *action );
if( !aCond )
return navlib::make_result_code( navlib::navlib_errc::invalid_operation );

4
pagelayout_editor/navlib/nl_pl_editor_plugin_impl.cpp

@ -436,14 +436,14 @@ long NL_PL_EDITOR_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
// Only allow command execution if the window is enabled. i.e. there is not a modal dialog
// currently active.
if( parent == nullptr || !parent->IsEnabled() )
if( !parent || !parent->IsEnabled() )
return navlib::make_result_code( navlib::navlib_errc::invalid_operation );
TOOLS_HOLDER* tools_holder = dynamic_cast<TOOLS_HOLDER*>( parent );
TOOL_MANAGER* tool_manager = tools_holder ? tools_holder->GetToolManager() : nullptr;
// Only allow for command execution if the tool manager is accessible.
if( tool_manager == nullptr )
if( !tool_manager )
return navlib::make_result_code( navlib::navlib_errc::invalid_operation );
for( std::list<TOOL_ACTION*> actions = ACTION_MANAGER::GetActionList(); const auto action : actions )

15
pcbnew/navlib/nl_pcbnew_plugin_impl.cpp

@ -417,21 +417,22 @@ long NL_PCBNEW_PLUGIN_IMPL::SetActiveCommand( std::string commandId )
// Only allow command execution if the window is enabled. i.e. there is not a modal dialog
// currently active.
if( parent->IsEnabled() )
if( parent && parent->IsEnabled() )
{
TOOL_MANAGER* tool_manager = static_cast<PCB_BASE_FRAME*>( parent )->GetToolManager();
TOOLS_HOLDER* tools_holder = dynamic_cast<TOOLS_HOLDER*>( parent );
TOOL_MANAGER* tool_manager = tools_holder ? tools_holder->GetToolManager() : nullptr;
// Only allow for command execution if the tool manager is accessible.
if( !tool_manager )
return navlib::make_result_code( navlib::navlib_errc::invalid_operation );
// Get the selection to use to test if the action is enabled
SELECTION& sel = tool_manager->GetToolHolder()->GetCurrentSelection();
bool runAction = true;
if( const ACTION_CONDITIONS* aCond =
tool_manager->GetActionManager()->GetCondition( *context ) )
{
if( const ACTION_CONDITIONS* aCond = tool_manager->GetActionManager()->GetCondition( *context ) )
runAction = aCond->enableCondition( sel );
}
if( runAction )
tool_manager->RunAction( *context );

Loading…
Cancel
Save