Introduce new KI_FALLTHROUGH macro
Annotate purposeful fallthroughs in switch statements with the KI_FALLTHROUGH macro.
This commit is contained in:
parent
ff67d6300d
commit
99dcadf7e6
|
@ -68,6 +68,8 @@
|
|||
|
||||
#include "cbvh_pbrt.h"
|
||||
#include "../../../3d_fastmath.h"
|
||||
#include <macros.h>
|
||||
|
||||
#include <boost/range/algorithm/nth_element.hpp>
|
||||
#include <boost/range/algorithm/partition.hpp>
|
||||
#include <cstdlib>
|
||||
|
@ -560,6 +562,7 @@ BVHBuildNode *CBVH_PBRT::recursiveBuild ( std::vector<BVHPrimitiveInfo> &primiti
|
|||
|
||||
// Intentionally fall through to SPLITMETHOD::EQUAL_COUNTS since prims
|
||||
// with large overlapping bounding boxes may fail to partition
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case SPLITMETHOD::EQUALCOUNTS:
|
||||
{
|
||||
|
|
|
@ -147,10 +147,12 @@ wxString MessageTextFromValue( EDA_UNITS aUnits, double aValue, bool aUseMils, E
|
|||
case EDA_DATA_TYPE::VOLUME:
|
||||
value = To_User_Unit( aUnits, value, aUseMils );
|
||||
// Fall through to continue computation
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case EDA_DATA_TYPE::AREA:
|
||||
value = To_User_Unit( aUnits, value, aUseMils );
|
||||
// Fall through to continue computation
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case EDA_DATA_TYPE::DISTANCE:
|
||||
value = To_User_Unit( aUnits, value, aUseMils );
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <project.h>
|
||||
#include <common.h>
|
||||
#include <reporter.h>
|
||||
#include <macros.h>
|
||||
#include <mutex>
|
||||
#include <wx/process.h>
|
||||
#include <wx/config.h>
|
||||
|
@ -548,7 +549,7 @@ wxString KIwxExpandEnvVars( const wxString& str, const PROJECT* aProject )
|
|||
|
||||
break;
|
||||
}
|
||||
// else fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
default:
|
||||
strResult += str_n;
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <confirm.h>
|
||||
#include <eda_draw_frame.h>
|
||||
#include <kiface_i.h>
|
||||
#include <macros.h>
|
||||
#include <settings/app_settings.h>
|
||||
|
||||
#include <class_draw_panel_gal.h>
|
||||
|
@ -386,6 +387,7 @@ bool EDA_DRAW_PANEL_GAL::SwitchBackend( GAL_TYPE aGalType )
|
|||
|
||||
default:
|
||||
wxASSERT( false );
|
||||
KI_FALLTHROUGH;
|
||||
// warn about unhandled GAL canvas type, but continue with the fallback option
|
||||
|
||||
case GAL_TYPE_NONE:
|
||||
|
|
|
@ -177,6 +177,7 @@ wxString convertLegacyVariableRefs( const wxString& aTextbase )
|
|||
case '8': msg += wxT( "${COMMENT8}" ); break;
|
||||
case '9': msg += wxT( "${COMMENT9}" ); break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -819,7 +819,8 @@ void GERBER_PLOTTER::FlashPadRect( const wxPoint& pos, const wxSize& aSize,
|
|||
case 900:
|
||||
case 2700: // rotation of 90 degrees or 270 swaps sizes
|
||||
std::swap( size.x, size.y );
|
||||
// Intentionally fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case 0:
|
||||
case 1800:
|
||||
if( trace_mode == SKETCH )
|
||||
|
|
|
@ -324,8 +324,8 @@ void PSLIKE_PLOTTER::fputsPostscriptString(FILE *fout, const wxString& txt)
|
|||
case ')':
|
||||
case '\\':
|
||||
putc( '\\', fout );
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
// FALLTHRU
|
||||
default:
|
||||
putc( ch, fout );
|
||||
break;
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
|
||||
#include "lib_tree.h"
|
||||
#include <macros.h>
|
||||
#include <wxdataviewctrl_helpers.h>
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/sizer.h>
|
||||
|
@ -365,6 +366,7 @@ void LIB_TREE::onQueryCharHook( wxKeyEvent& aKeyStroke )
|
|||
break;
|
||||
}
|
||||
// Intentionally fall through, so the selected component will be treated as the selected one
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
default:
|
||||
aKeyStroke.Skip(); // Any other key: pass on to search box directly.
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include <common.h>
|
||||
#include <erc.h>
|
||||
#include <macros.h>
|
||||
#include <sch_bus_entry.h>
|
||||
#include <sch_component.h>
|
||||
#include <sch_edit_frame.h>
|
||||
|
@ -207,7 +208,10 @@ std::vector<SCH_ITEM*> CONNECTION_SUBGRAPH::GetBusLabels() const
|
|||
// Only consider bus vectors
|
||||
if( label_conn->Type() == CONNECTION_TYPE::BUS )
|
||||
labels.push_back( item );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include <netlist_object.h>
|
||||
#include <class_library.h>
|
||||
#include <macros.h>
|
||||
#include <sch_junction.h>
|
||||
#include <sch_component.h>
|
||||
#include <sch_line.h>
|
||||
|
@ -115,6 +116,7 @@ bool NETLIST_OBJECT_LIST::BuildNetListInfo( SCH_SHEET_LIST& aSheets )
|
|||
break;
|
||||
|
||||
// Intentionally fall through if there is no net assigned
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case NETLIST_ITEM::SEGMENT:
|
||||
// Test connections point to point type without bus.
|
||||
|
@ -165,6 +167,7 @@ bool NETLIST_OBJECT_LIST::BuildNetListInfo( SCH_SHEET_LIST& aSheets )
|
|||
break;
|
||||
|
||||
// Intentionally fall through if there is no bus assigned
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case NETLIST_ITEM::BUS:
|
||||
// Control type connections point to point mode bus
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include <lib_polyline.h>
|
||||
#include <lib_rectangle.h>
|
||||
#include <lib_text.h>
|
||||
#include <macros.h>
|
||||
#include <project.h>
|
||||
#include <sch_bus_entry.h>
|
||||
#include <sch_component.h>
|
||||
|
@ -229,6 +230,7 @@ static COMPONENT_ORIENTATION_T kiCadComponentRotation( float eagleDegrees )
|
|||
{
|
||||
default:
|
||||
wxASSERT_MSG( false, wxString::Format( "Unhandled orientation (%d degrees)", roti ) );
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case 0:
|
||||
return CMP_ORIENT_0;
|
||||
|
@ -1701,8 +1703,8 @@ LIB_PIN* SCH_EAGLE_PLUGIN::loadPin(
|
|||
{
|
||||
default:
|
||||
wxASSERT_MSG( false, wxString::Format( "Unhandled orientation (%d degrees)", roti ) );
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
// fall through
|
||||
case 0:
|
||||
pin->SetOrientation( 'R' );
|
||||
break;
|
||||
|
|
|
@ -836,6 +836,8 @@ SCH_TEXT* SCH_SCREEN::GetLabel( const wxPoint& aPosition, int aAccuracy )
|
|||
if( item->HitTest( aPosition, aAccuracy ) )
|
||||
return (SCH_TEXT*) item;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include <msgpanel.h>
|
||||
#include <gal/stroke_font.h>
|
||||
#include <bitmaps.h>
|
||||
#include <macros.h>
|
||||
#include <math/util.h> // for KiROUND
|
||||
#include <kiway.h>
|
||||
#include <sch_text.h>
|
||||
|
@ -357,7 +358,7 @@ bool SCH_TEXT::UpdateDanglingState( std::vector<DANGLING_END_ITEM>& aItemList,
|
|||
|
||||
case BUS_START_END:
|
||||
m_connectionType = CONNECTION_TYPE::BUS;
|
||||
// fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case WIRE_START_END:
|
||||
{
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include <am_param.h>
|
||||
#include <am_primitive.h>
|
||||
#include <macros.h>
|
||||
|
||||
extern int ReadInt( char*& text, bool aSkipSeparator = true );
|
||||
extern double ReadDouble( char*& text, bool aSkipSeparator = true );
|
||||
|
@ -184,7 +185,9 @@ bool AM_PARAM::ReadParam( char*& aText )
|
|||
|
||||
if( !found ) // happens when a string starts by ',' before any param
|
||||
break; // just skip this separator
|
||||
// fall through
|
||||
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case '\n':
|
||||
case '\r':
|
||||
case 0: // EOL
|
||||
|
|
|
@ -234,7 +234,7 @@ bool GERBER_FILE_IMAGE::ExecuteRS274XCommand( int aCommand, char* aBuff,
|
|||
msg.Printf( _("GERBER file \"%s\" may not display as intended." ),
|
||||
m_FileName.ToAscii() );
|
||||
AddMessageToList( msg );
|
||||
// Fallthrough
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case 'L': // No Leading 0
|
||||
m_NoTrailingZeros = false;
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2020 Ian McInerney <ian.s.mcinerney@ieee.org>
|
||||
* Copyright (C) 2007-2014 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 1992-2015 KiCad Developers, see CHANGELOG.TXT for contributors.
|
||||
* Copyright (C) 1992-2020 KiCad Developers, see CHANGELOG.TXT for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
|
@ -37,6 +38,57 @@
|
|||
#include <set>
|
||||
#include <memory> // std::shared_ptr
|
||||
|
||||
#if defined( __has_attribute )
|
||||
#define KI_HAS_ATTRIBUTE( x ) __has_attribute( x )
|
||||
#else
|
||||
#define KI_HAS_ATTRIBUTE( x ) 0
|
||||
#endif
|
||||
|
||||
// Based on the declaration inside the LLVM source code
|
||||
#if defined( __cplusplus ) && defined( __has_cpp_attribute )
|
||||
#define KI_HAS_CPP_ATTRIBUTE( x ) __has_cpp_attribute( x )
|
||||
#else
|
||||
#define KI_HAS_CPP_ATTRIBUTE( x ) 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The KI_FALLTHROUGH macro is to be used when switch statement cases should purposely
|
||||
* fallthrough from one to the next. It must be followed by a ";".
|
||||
*
|
||||
* Sample code:
|
||||
* switch( a )
|
||||
* {
|
||||
* case 1:
|
||||
* // Some code
|
||||
* KI_FALLTHROUGH;
|
||||
*
|
||||
* case 2:
|
||||
* // More code
|
||||
* break;
|
||||
* }
|
||||
*/
|
||||
#if __cplusplus >= 201703L
|
||||
// C++ 17 includes this macro on all compilers
|
||||
#define KI_FALLTHROUGH [[fallthrough]]
|
||||
|
||||
#elif KI_HAS_CPP_ATTRIBUTE( clang::fallthrough )
|
||||
// Clang provides this attribute to silence the "-Wimplicit-fallthrough" warning
|
||||
#define KI_FALLTHROUGH [[clang::fallthrough]]
|
||||
|
||||
#elif KI_HAS_CPP_ATTRIBUTE( gnu::fallthrough )
|
||||
// GNU-specific C++ attribute to sliencing the warning
|
||||
#define KI_FALLTHROUGH [[gnu::fallthrough]]
|
||||
|
||||
#elif defined( __GNUC__ ) && __GNUC__ >= 7
|
||||
// GCC 7+ includes the "-Wimplicit-fallthrough" warning, and this attribute to silence it
|
||||
#define KI_FALLTHROUGH __attribute__ ((fallthrough))
|
||||
|
||||
#else
|
||||
// In every other case, don't do anything
|
||||
#define KI_FALLTHROUGH ( ( void ) 0 )
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Macro TO_UTF8
|
||||
* converts a wxString to a UTF8 encoded C string for all wxWidgets build modes.
|
||||
|
|
|
@ -125,7 +125,8 @@ void DIALOG_NEW_DATAITEM::initDlg()
|
|||
case WS_DATA_ITEM::WS_BITMAP:
|
||||
case WS_DATA_ITEM::WS_POLYPOLYGON:
|
||||
m_textCtrlText->Enable( false );
|
||||
// fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case WS_DATA_ITEM::WS_TEXT:
|
||||
m_textCtrlEndX->Enable( false );
|
||||
m_textCtrlEndY->Enable( false );
|
||||
|
|
|
@ -172,7 +172,8 @@ void EDGE_MODULE::Flip( const wxPoint& aCentre, bool aFlipLeftRight )
|
|||
{
|
||||
case S_ARC:
|
||||
SetAngle( -GetAngle() );
|
||||
//Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
default:
|
||||
case S_SEGMENT:
|
||||
case S_CURVE:
|
||||
|
@ -236,7 +237,8 @@ void EDGE_MODULE::Mirror( wxPoint aCentre, bool aMirrorAroundXAxis )
|
|||
{
|
||||
case S_ARC:
|
||||
SetAngle( -GetAngle() );
|
||||
//Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
default:
|
||||
case S_CURVE:
|
||||
case S_SEGMENT:
|
||||
|
|
|
@ -298,8 +298,7 @@ void MODULE::Add( BOARD_ITEM* aBoardItem, ADD_MODE aMode )
|
|||
case PCB_MODULE_TEXT_T:
|
||||
// Only user text can be added this way.
|
||||
assert( static_cast<TEXTE_MODULE*>( aBoardItem )->GetType() == TEXTE_MODULE::TEXT_is_DIVERS );
|
||||
|
||||
// no break
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PCB_MODULE_EDGE_T:
|
||||
if( aMode == ADD_MODE::APPEND )
|
||||
|
@ -347,8 +346,7 @@ void MODULE::Remove( BOARD_ITEM* aBoardItem )
|
|||
wxCHECK_RET(
|
||||
static_cast<TEXTE_MODULE*>( aBoardItem )->GetType() == TEXTE_MODULE::TEXT_is_DIVERS,
|
||||
"Please report this bug: Invalid remove operation on required text" );
|
||||
|
||||
// no break
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PCB_MODULE_EDGE_T:
|
||||
for( auto it = m_drawings.begin(); it != m_drawings.end(); ++it )
|
||||
|
@ -828,7 +826,8 @@ SEARCH_RESULT MODULE::Visit( INSPECTOR inspector, void* testData, const KICAD_T
|
|||
if( result == SEARCH_RESULT::QUIT )
|
||||
break;
|
||||
|
||||
// Intentionally fall through since m_Drawings can hold TYPETEXTMODULE also
|
||||
// Intentionally fall through since m_Drawings can hold TYPETEXTMODULE also
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PCB_MODULE_EDGE_T:
|
||||
result = IterateForward<BOARD_ITEM*>( m_drawings, inspector, testData, p );
|
||||
|
@ -949,7 +948,8 @@ void MODULE::ViewGetLayers( int aLayers[], int& aCount ) const
|
|||
|
||||
default:
|
||||
wxASSERT_MSG( false, "Illegal layer" ); // do you really have modules placed on other layers?
|
||||
// pass through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case F_Cu:
|
||||
aLayers[1] = LAYER_MOD_FR;
|
||||
break;
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <class_marker_pcb.h>
|
||||
#include <class_zone.h>
|
||||
#include <class_drawsegment.h>
|
||||
#include <macros.h>
|
||||
#include <math/util.h> // for KiROUND
|
||||
|
||||
|
||||
|
@ -277,7 +278,10 @@ SEARCH_RESULT GENERAL_COLLECTOR::Inspect( EDA_ITEM* testItem, void* testData )
|
|||
|
||||
case PCB_MODULE_ZONE_AREA_T:
|
||||
module = static_cast<MODULE*>( item->GetParent() );
|
||||
// Fall through
|
||||
|
||||
// Fallthrough to get the zone as well
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PCB_ZONE_AREA_T:
|
||||
zone = static_cast<ZONE_CONTAINER*>( item );
|
||||
break;
|
||||
|
|
|
@ -381,6 +381,8 @@ void PCB_EDIT_FRAME::KiwayMailIn( KIWAY_EXPRESS& mail )
|
|||
|
||||
if( importFormat >= 0 )
|
||||
importFile( path, importFormat );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
// many many others.
|
||||
|
|
|
@ -325,7 +325,7 @@ bool DIALOG_GRAPHIC_ITEM_PROPERTIES::Validate()
|
|||
// Check angle of arc.
|
||||
if( m_angle.GetValue() == 0 )
|
||||
error_msgs.Add( _( "The arc angle cannot be zero." ) );
|
||||
// Fall through.
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case S_CIRCLE:
|
||||
// Check radius.
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <dialog_pad_properties.h>
|
||||
#include <gal/graphics_abstraction_layer.h>
|
||||
#include <html_messagebox.h>
|
||||
#include <macros.h>
|
||||
#include <pcb_base_frame.h>
|
||||
#include <pcb_painter.h>
|
||||
#include <pcbnew.h>
|
||||
|
@ -1110,7 +1111,8 @@ bool DIALOG_PAD_PROPERTIES::padValuesOK()
|
|||
if( padlayers_mask[B_Paste] || padlayers_mask[F_Paste] )
|
||||
error_msgs.Add( _( "Error: Connector pads are not on the solder paste layer\n"
|
||||
"Use SMD pads instead" ) );
|
||||
// Intentionally fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PAD_ATTRIB_SMD: // SMD and Connector pads (One external copper layer only)
|
||||
{
|
||||
LSET innerlayers_mask = padlayers_mask & LSET::InternalCuMask();
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include <tool/tool_manager.h>
|
||||
#include <tools/zone_filler_tool.h>
|
||||
#include <math/util.h> // for KiROUND
|
||||
#include <macros.h>
|
||||
|
||||
|
||||
DIALOG_PLOT::DIALOG_PLOT( PCB_EDIT_FRAME* aParent ) :
|
||||
|
@ -402,6 +403,8 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
|
|||
{
|
||||
case PLOT_FORMAT::SVG:
|
||||
m_PlotOptionsSizer->Show( m_svgOptionsSizer );
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PLOT_FORMAT::PDF:
|
||||
m_drillShapeOpt->Enable( true );
|
||||
m_plotModeOpt->Enable( false );
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <dialog_push_pad_properties.h>
|
||||
|
||||
#include <class_pad.h>
|
||||
#include <macros.h>
|
||||
#include <pcb_edit_frame.h>
|
||||
|
||||
|
||||
|
@ -72,8 +73,7 @@ void DIALOG_PUSH_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event )
|
|||
{
|
||||
case wxID_APPLY:
|
||||
returncode = 1;
|
||||
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case wxID_OK:
|
||||
m_Pad_Shape_Filter = m_Pad_Shape_Filter_CB->GetValue();
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <confirm.h>
|
||||
#include <connectivity/connectivity_data.h>
|
||||
#include <board_commit.h>
|
||||
#include <macros.h>
|
||||
|
||||
DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParent,
|
||||
const PCBNEW_SELECTION& aItems,
|
||||
|
@ -492,7 +493,7 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow()
|
|||
{
|
||||
default:
|
||||
wxFAIL_MSG("Unhandled via type");
|
||||
// fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case VIATYPE::THROUGH:
|
||||
case VIATYPE::BLIND_BURIED:
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <convert_basic_shapes_to_polygon.h>
|
||||
#include <board_commit.h>
|
||||
#include <math/util.h> // for KiROUND
|
||||
#include <macros.h>
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1288,7 +1289,8 @@ bool DRC::checkClearanceSegmToPad( const D_PAD* aPad, int aSegmentWidth, int aMi
|
|||
padHalfsize.y -= r;
|
||||
distToLine += r;
|
||||
}
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PAD_SHAPE_RECT:
|
||||
// the area to test is a rounded rectangle.
|
||||
// this can be done by testing 2 rectangles and 4 circles (the corners)
|
||||
|
|
|
@ -479,7 +479,7 @@ static void CreatePadsShapesSection( FILE* aFile, BOARD* aPcb )
|
|||
{
|
||||
default:
|
||||
wxASSERT_MSG( false, "Pad type not implemented" );
|
||||
// fall-through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PAD_SHAPE_CIRCLE:
|
||||
fprintf( aFile, " ROUND %g\n",
|
||||
|
|
|
@ -1192,6 +1192,7 @@ static void export_vrml_padshape( MODEL_VRML& aModel, VRML_LAYER* aTinLayer, D_P
|
|||
pad_dy = 0;
|
||||
|
||||
// Intentionally fall through and treat a rectangle as a trapezoid with no sloped sides
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PAD_SHAPE_TRAPEZOID:
|
||||
{
|
||||
|
|
|
@ -110,7 +110,8 @@ bool GENDRILL_WRITER_BASE::genDrillMapFile( const wxString& aFullFileName, PLOT_
|
|||
|
||||
default:
|
||||
wxASSERT( false );
|
||||
// fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PLOT_FORMAT::PDF:
|
||||
case PLOT_FORMAT::POST:
|
||||
case PLOT_FORMAT::SVG:
|
||||
|
|
|
@ -321,7 +321,8 @@ bool PCB_EDIT_FRAME::Files_io_from_id( int id )
|
|||
case ID_SAVE_BOARD:
|
||||
if( !GetBoard()->GetFileName().IsEmpty() )
|
||||
return SavePcbFile( Prj().AbsolutePath( GetBoard()->GetFileName() ) );
|
||||
// Fall through
|
||||
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case ID_COPY_BOARD_AS:
|
||||
case ID_SAVE_BOARD_AS:
|
||||
|
|
|
@ -752,8 +752,7 @@ void GPCB_FPL_CACHE::parseParameters( wxArrayString& aParameterList, LINE_READER
|
|||
case '\r':
|
||||
// Element descriptions can span multiple lines.
|
||||
line = aLineReader->ReadLine();
|
||||
|
||||
// Intentionally fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case '\t':
|
||||
case ' ':
|
||||
|
|
|
@ -238,11 +238,11 @@ void PCB_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event )
|
|||
|
||||
case ID_ALWAYS_HIDE_ALL_COPPER_LAYERS_BUT_ACTIVE:
|
||||
m_alwaysShowActiveCopperLayer = true;
|
||||
// Fallthrough
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case ID_HIDE_ALL_COPPER_LAYERS_BUT_ACTIVE:
|
||||
forceActiveLayer = true;
|
||||
// Fallthrough
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case ID_HIDE_ALL_COPPER_LAYERS:
|
||||
layersToHide = LSET::AllCuMask();
|
||||
|
|
|
@ -438,7 +438,8 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
|||
pad->SetSize( padPlotsSize );
|
||||
pad->SetRoundRectCornerRadius( margin.x );
|
||||
}
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PAD_SHAPE_TRAPEZOID:
|
||||
case PAD_SHAPE_ROUNDRECT:
|
||||
case PAD_SHAPE_CHAMFERED_RECT:
|
||||
|
|
|
@ -842,7 +842,8 @@ void SPECCTRA_DB::doKEEPOUT( KEEPOUT* growth )
|
|||
|
||||
case T_polyline_path:
|
||||
tok = T_path;
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case T_path:
|
||||
case T_polygon:
|
||||
if( growth->shape )
|
||||
|
@ -937,7 +938,8 @@ void SPECCTRA_DB::doWINDOW( WINDOW* growth )
|
|||
|
||||
case T_polyline_path:
|
||||
tok = T_path;
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case T_path:
|
||||
case T_polygon:
|
||||
if( growth->shape )
|
||||
|
@ -2055,7 +2057,8 @@ void SPECCTRA_DB::doSHAPE( SHAPE* growth )
|
|||
{
|
||||
case T_polyline_path:
|
||||
tok = T_path;
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case T_rect:
|
||||
case T_circle:
|
||||
case T_path:
|
||||
|
@ -2799,7 +2802,8 @@ void SPECCTRA_DB::doWIRE( WIRE* growth )
|
|||
|
||||
case T_polyline_path:
|
||||
tok = T_path;
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case T_path:
|
||||
case T_polygon:
|
||||
if( growth->shape )
|
||||
|
|
|
@ -38,6 +38,7 @@ using namespace std::placeholders;
|
|||
|
||||
#include <gal/graphics_abstraction_layer.h>
|
||||
#include <geometry/shape_line_chain.h>
|
||||
#include <macros.h>
|
||||
#include <math/util.h> // for KiROUND
|
||||
#include <math/vector2d.h>
|
||||
#include <painter.h>
|
||||
|
@ -484,7 +485,8 @@ void GRID_HELPER::computeAnchors( BOARD_ITEM* aItem, const VECTOR2I& aRefPos, bo
|
|||
case S_CURVE:
|
||||
addAnchor( start, CORNER | SNAPPABLE, dseg );
|
||||
addAnchor( end, CORNER | SNAPPABLE, dseg );
|
||||
//Fallthrough
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
default:
|
||||
origin = dseg->GetStart();
|
||||
addAnchor( origin, ORIGIN | SNAPPABLE, dseg );
|
||||
|
|
|
@ -442,7 +442,8 @@ void PCB_BASE_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool
|
|||
{
|
||||
case PCB_MODULE_T:
|
||||
deep_reBuild_ratsnest = true; // Pointers on pads can be invalid
|
||||
// Fall through
|
||||
KI_FALLTHROUGH;
|
||||
|
||||
case PCB_ZONE_AREA_T:
|
||||
case PCB_TRACE_T:
|
||||
case PCB_ARC_T:
|
||||
|
@ -568,7 +569,7 @@ void PCB_BASE_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool
|
|||
|
||||
if( not_found )
|
||||
wxMessageBox( _( "Incomplete undo/redo operation: some items not found" ) );
|
||||
|
||||
|
||||
// Rebuild pointers and connectivity that can be changed.
|
||||
// connectivity can be rebuilt only in the board editor frame
|
||||
if( IsType( FRAME_PCB_EDITOR ) && ( reBuild_ratsnest || deep_reBuild_ratsnest ) )
|
||||
|
|
Loading…
Reference in New Issue