pcb

attribute PCB::skip-drc does not work

Bug #829123 reported by KaiMartin
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
pcb
Fix Released
Undecided
Andrew Poelstra

Bug Description

The layer attribute "PCB::skip-drc" is supposed to suppress DRC checks on this layer. The code in find.c tries to skip the tagged layer. As it is, the code runs into an endless loop when the attribute is set at line 1174. This can be remedied with statements that set LineList ArcList and PolygonList (see attached patch). However, the continue statement in line 824 leads to more reported violations than without. For some reason the calls of r_search() are needed for proper operation.

Unfortunately, the internals of the r_search() function are beyond my level of C comprehension.

---<)kaimartin(>---

PS: While skip-drc solves some problems, it cannot deal with situations that call for more than one set of rules. A better solution would allow to specify separate DRC rules per layer, per net, per footprint and ultimately per object.

Revision history for this message
KaiMartin (kmk-familieknaak) wrote :
Andrew Poelstra (asp11)
Changed in pcb:
assignee: nobody → Andrew Poelstra (asp11)
status: New → Confirmed
Revision history for this message
gpleda.org commit robot (gpleda-launchpad-robot) wrote :

Bug was fixed by a commit
git master commit 9fb614b8fd015e9bf52e9c3df2c61639c368622a
http://git.geda-project.org/pcb/commit/?id=9fb614b8fd015e9bf52e9c3df2c61639c368622a

commit 9fb614b8fd015e9bf52e9c3df2c61639c368622a
Author: Andrew Poelstra (local) <email address hidden>
Commit: Andrew Poelstra (local) <email address hidden>

    Fix infinite loop on PCB::skip-drc attribute

    When doing a DRC check, pcb skips checking any layers who have the
    PCB::skip-drc attribute set. However, when determining whether the
    check is complete (via the ListsEmpty()) function, it doesn't skip
    these layers.

    The result is an infinite loop, since if there is work to be done
    on a skip-drc layer, the checker will keep running until it is done
    -- i.e., will keep running forever.

    This patch skips skip-drc layers in ListsEmpty().

    Closes-bug: lp-829123

Changed in pcb:
status: Confirmed → Fix Committed
Changed in pcb:
status: Fix Committed → Fix Released
Changed in pcb:
milestone: none → pcb-20140316
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.