Threaded DRC access will write to this string, re-allocating the memory
without any synchronization between threads using the string. Comment
adding this listed performance as a reason for using shared strings.
Measured performance does not seem noticeably different in either case,
even with high-error count boards. If there is a case where the
performance is limiting, we can replace these wxStrings with
std::wstring and utilize fmt
Fixes https://gitlab.com/kicad/code/kicad/issues/9888
The issue is that object A (the solder mask aperture object) can
bridge objects B and C which have different nets. Since we only do
object-to-object compares we don't find this. By allowing object A
to inherit the first net it collides with (either object B's or
object C's), we'll generate a violation with the second collision.
Fixes https://gitlab.com/kicad/code/kicad/issues/10189
1) Don't plot all footprint texts for each footprint graphic item.
2) Enforce min web thickness around board shapes and board text.
3) Enforce min web thickness around footprint shapes
4) Correctly handle multi-layer zones.
(1) and (4) will get cherry-picked back to 6.0, so after rebasing
won't actually appear in this changelist anymore....