- Utilize scoped deletion for individual git_*_free() calls
- Protect against multiple usage when updating icons
- Reduce frequency of git update calls
When A references B and B references A, the shared pointer reference
count will never go to zero by just removing the parent container. We
need to explicitly clear the shared pointer references when we are done
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20272
Apparently newer symbol libraries are using the library nickname in the
footprint filter string. The symbol footprint filter match DRC was only
checking the footprint name against the new filter which would always
fail. A test against the full LIB_ID string is now performed when the
filter string contains the library separator character ':'. The ERC test
already performed this check.
(Regardless of report-all-errors-per-track setting.
There's no clear rule here, but to do otherwise just
feels wrong. Keepout areas are distinct, it's not
like tracks too close together reporting lots of
clearance errors.)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13219
The loop processes nodes but skips those nodes that share the same
parent. Because of this, we can get strong performance improvement from
caching gains by sorting the vector first by the parents so that the
inner loop is able to skip ahead without invalidating its cache
When building a net tie, all elements in the footprint that belong to
the net tie can be arbitrarily close to one another. outside of the
footprint, connected items can be arbitrarily close to the tie element
but must respect the clearance values for elements that have nets
assigned to them
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19933
(cherry picked from commit bff819edb0)
There are two netclass name methods, which previously were not
obvious in their uses. These have been renamed to now have:
GetName() : Used for internal or tooling (e.g. netlist export) usage
GetHumanReadableName() : Used for display to users (e.g. in infobars)
Fixing the previous unclear naming will result in fewer bugs
when users start using the multiple netclass functionality, as
the incorrect usage had started creeping in to new code. Also this
will help authors of new code select the correct name method.
Handle arcs properly even when not exactly concentric. Properly check
for interfering elements that would prevent coupling. Avoiding those
that are directly connected
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17967
Make sure of sets where possible
Don't do checks in nested loops -- prune first
Thread when possible
Ensure we are updating the dialog as we go
Fix some coding convention issues
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19488
KeepRefreshing is gated so if we get a bunch of phases in a row, they
won't be shown until you get past a slower phase. By yielding here, we
ensure that the dialog is updated and the user knows which phase of DRC
they are on.
We now test each hole against the combined copper of all pads
with the same number minus the other holes.
Also fixes a bug with "handled" flag not getting reset between
layers of padstacks.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19521
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started. Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.
The singleton class can be extended to provide single instance
guarantee for any element across kifaces
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names