Commit Graph

177 Commits

Author SHA1 Message Date
Seth Hillbrand 06786c34d7 Blacklist hashes for 2d integer elements
The hash table for integer hashes is extremely limited and places most
elements in the same buckets.  This leads to a linear search time for
structures built on this.

This blocks hashes, directing the coder to utilize std::set or std::map
structures instead of hash tables for implementing integer-based
lookups.
2022-08-26 08:43:37 -07:00
Jeff Young 88c9177ff6 Move bus members from wxArray to std::vector and fix some bugs in dialog. 2022-08-21 20:54:41 +01:00
Jeff Young ced55583a6 Back out unordered_map change for SCH_ITEM.
We're sensitive to the ordering in this one.

Also fixes a problem with the unit tests when KICAD_SPICE=OFF.
2022-08-03 14:29:34 +01:00
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Seth Hillbrand fe3a112396 ADDED: Allow stacked pins of the same type
Removes the need for the "KiCad" workaround where stacked pins need
to be "Passive" type.  Pins that have the same parent symbol, name,
position and type are considered to be the same output and do not
trigger ERC errors

Fixes https://gitlab.com/kicad/code/kicad/issues/5367
2022-07-30 13:16:30 -07:00
jean-pierre charras 993c446fdf Fix some warnings detected by PVS-STUDIO (most are not used vars) 2022-07-25 18:23:52 +02:00
Seth Hillbrand 702623ef87 Don't flag pin missing driver when there is an NC
The NC flag indicates user intention to override the lack of connection
to input pins

(cherry picked from commit e02229a234)
2022-04-07 09:35:23 -07:00
Seth Hillbrand 4b0b4c0ddc Show non-driven error on single-pin nets
Better to have both the single-pin error message and the non-driven
error message when an input pin is not connected than miss error
messages when the pin is connected to a blank net

Fixes https://gitlab.com/kicad/code/kicad/issues/10430

(cherry picked from commit e740db61f5)
2022-04-06 16:54:04 -07:00
Jeff Young e77a71bf7a Fix typo found in code review. 2022-03-21 10:32:36 +00:00
Jeff Young 41c0009c51 Off-grid ERC warnings.
Fixes https://gitlab.com/kicad/code/kicad/issues/10379
2022-03-17 20:23:56 +00:00
Jeff Young 76535d8572 Make LIB_ITEM::COMPARE_FLAGS really a flags field, and add ERC.
Before they were 1/2 treated as flags and 1/2 treated as a mode enum.

The ERC flag relaxes constraints on data that is settable in the
schematic editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/11018
2022-03-03 13:27:18 +00:00
Jeff Young b55bda8d6f Font support for drawing sheet editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/10306
2022-02-28 18:05:26 +00:00
Jeff Young c6a8100d46 Schematic and symbol text boxes.
Also fixes some plot bugs with arcs.

Also moves polygonization of arcs (when required) in plotting code
from 5 degrees to calculated based on ARC_HIGH_DEF.

Fixes https://gitlab.com/kicad/code/kicad/issues/5017
2022-01-28 21:38:15 +00:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Jeff Young 83e5208213 Fix a couple of holes in the IsTestEnabled() checks.
Fixes https://gitlab.com/kicad/code/kicad/issues/7270
2021-11-04 16:24:06 +00:00
Jon Evans 4da0c897bc Fix flagging power pin in ERC check
IsPowerConnection() is too restrictive a check

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8881
2021-08-21 11:19:09 -04:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young 6d4c454e8c Fix some more missing escaping for symbol ids.
Fixes https://gitlab.com/kicad/code/kicad/issues/8694
2021-07-28 18:37:09 +01:00
Wayne Stambaugh cb72da294a More NULL expunging. 2021-07-16 16:13:41 -04:00
Jeff Young 389287e942 A bit more Part -> Symbol. 2021-06-17 22:24:41 +01:00
Jeff Young c0ad498c4a Report all lib symbol issues.
Fixes https://gitlab.com/kicad/code/kicad/issues/7725
2021-06-17 22:24:41 +01:00
Jeff Young 0484ca5564 Separate LIB_PIN and SCH_PIN GetShownName/Number processing.
SCH_PIN wasn't handling the legacy empty string token (~), but
more importantly this will allow text variable resolution specific
to the schematic.

Fixes https://gitlab.com/kicad/code/kicad/issues/8625
2021-06-17 10:52:46 +01:00
Wayne Stambaugh ee3eac325d Expunge the use of the word part from Eeschema code. 2021-06-15 08:32:11 -04:00
Wayne Stambaugh fb46cd8bc5 Expunge the use of the word component from Eeschema code.
The only exception to this is the SPICE simulator's use of component
when referring to physical component (R, L, C, etc.) values.
2021-06-14 14:00:21 -04:00
Wayne Stambaugh 71c183d7bb Rename LIB_PART to LIB_SYMBOL. 2021-06-14 07:11:17 -04:00
Wayne Stambaugh fbc135e69f Rename SCH_COMPONENT to SCH_SYMBOL. 2021-06-10 10:34:49 -04:00
Wayne Stambaugh 2b86b34124 Eeschema: split out SCH_SHEET_PIN declarations into separate header. 2021-04-06 17:15:49 -04:00
Jon Evans c04e19f9ac Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
Jeff Young 2e129d9b47 Naming conventions and other cleanup. 2021-03-19 23:06:19 +00:00
Wayne Stambaugh 7a00e01b3e Eeschema: fix false positive library symbol changed ERC errors.
This fix required sorting all of the LIB_PART draw items to ensure
accurate comparison between the symbols stored in the schematic and the
original library symbols.  This has a noticeable impact on symbol library
load performance.  It may also cause significant changes the next time
the library is saved due to changes in the draw item sorting.  Hashing
may be a better solution here but this addressed the immediate problem.

A skeleton method SCH_SCREEN::SwapSymbolLinks() was added because there
is most likely an issue with orphaned symbols in the schematic library
symbol cache during undo/redo operations.  More testing is required to
verify this.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7263
2021-03-04 17:59:24 -05:00
Jeff Young a3b9e8ddb4 Round 2 of Worksheet -> Drawing Sheet. 2021-02-23 11:57:44 +00:00
Jeff Young cad5198ab7 Worksheet -> (industry standard) Drawing Sheet. 2021-02-22 17:35:46 +00:00
Jeff Young 8464add58c Use GetSchSymbolLibraryName() when looking up symbol in schematic.
Fixes https://gitlab.com/kicad/code/kicad/issues/7301
2021-02-02 22:55:18 +00:00
Jon Evans 9f18fee124 Fix ERC for nets with power input and input pins
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7264
2021-01-24 22:17:56 -05:00
Jeff Young 0a1a5ea669 Fold annotation error reporting into ERC.
Fixes https://gitlab.com/kicad/code/kicad/issues/6938
2021-01-24 23:01:24 +00:00
Jeff Young 360953ba98 "comp" -> "symbol". 2021-01-19 23:50:40 +00:00
Jon Evans 5ceadbda3b Don't show redundant ERC markers from subsheets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7016
2021-01-12 23:24:13 -05:00
Wayne Stambaugh 1eee72ec65 Fix library tree behavior when duplicate project table entry is disabled.
Fixes https://gitlab.com/kicad/code/kicad/issues/5438
2021-01-11 07:46:07 -05:00
Jeff Young 9bf952a695 Fix missing punctuation. 2020-12-21 17:37:53 +00:00
Jeff Young 5d400a9e11 Improve symbol library messages.
Includes both error messages and ERC messages.

Fixes https://gitlab.com/kicad/code/kicad/issues/6302
2020-12-18 12:49:20 +00:00
Jeff Young 6e6e0aa644 Naming conventions (including some component -> symbol). 2020-11-15 20:23:15 +00:00
Jeff Young 6654c03041 Embarking on the next adventure: component -> symbol. 2020-11-15 20:23:15 +00:00
jean-pierre charras 2e92cc7958 ERC: use separate tests for input pins and power input pins.
Input pins can be driven by many pin types: output, passive, 3state, I/O
But Power pins can be driven by only power output pins, and cannot
use the same criteria in ERC tests.
2020-11-02 12:41:58 +01:00
Marek Roszko c173ea14b7 Quiet MSVC warning about bool OR int 2020-10-24 00:50:37 -04:00
Jon Evans 50cff57b9a Explicit bools for MS
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6146
2020-10-23 21:35:23 -04:00
Jon Evans 601a63b63a Better prioritization for non-driven pin ERC
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1881
2020-10-21 21:47:00 -04:00
Jon Evans af28634df1 Bring Pin Not Driven ERC to the new system
Also reword the error title to be a bit more clear

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5681
2020-10-21 21:35:09 -04:00
Wayne Stambaugh 8ff51d8899 Eeschema: add schematic sheet page number.
The groundwork has now been laid for per sheet instance data.  Initially
this only supports sheet page numbers but could be expanded to include
other per sheet instance information.

ADDED: Support for user defined schematic page numbers.
2020-10-19 14:05:45 -04:00
Jeff Young d0ddc909dc Handle hierarchical symbols when performing "lib symbol changed" check.
Fixes https://gitlab.com/kicad/code/kicad/issues/6002
2020-10-19 15:37:47 +01:00
Jeff Young 3100273db1 Don't invalidate itterator by adding markers inside loop.
Fixes https://gitlab.com/kicad/code/kicad/issues/6002
2020-10-19 15:32:59 +01:00