diff --git a/src/db/db/dbFlatEdges.cc b/src/db/db/dbFlatEdges.cc index bfb75087c..8f1e1ae02 100644 --- a/src/db/db/dbFlatEdges.cc +++ b/src/db/db/dbFlatEdges.cc @@ -82,7 +82,7 @@ void FlatEdges::invalidate_cache () void FlatEdges::init () { - m_is_merged = true; + m_is_merged = false; m_merged_edges_valid = false; } @@ -321,9 +321,7 @@ const db::RecursiveShapeIterator *FlatEdges::iter () const void FlatEdges::do_insert (const db::Edge &edge) { - if (! empty ()) { - m_is_merged = false; - } + m_is_merged = empty (); mp_edges->insert (edge); invalidate_cache (); diff --git a/src/db/db/dbFlatRegion.cc b/src/db/db/dbFlatRegion.cc index a2314efe1..e12344c92 100644 --- a/src/db/db/dbFlatRegion.cc +++ b/src/db/db/dbFlatRegion.cc @@ -82,7 +82,7 @@ void FlatRegion::invalidate_cache () void FlatRegion::init () { - m_is_merged = true; + m_is_merged = false; m_merged_polygons_valid = false; } diff --git a/src/db/db/dbOriginalLayerEdges.cc b/src/db/db/dbOriginalLayerEdges.cc index 0282d77e1..a3e4c9f33 100644 --- a/src/db/db/dbOriginalLayerEdges.cc +++ b/src/db/db/dbOriginalLayerEdges.cc @@ -270,7 +270,7 @@ OriginalLayerEdges::less (const Edges &other) const void OriginalLayerEdges::init () { - m_is_merged = true; + m_is_merged = false; m_merged_edges_valid = false; } diff --git a/src/db/db/dbOriginalLayerRegion.cc b/src/db/db/dbOriginalLayerRegion.cc index 2049fb93f..f02ff0268 100644 --- a/src/db/db/dbOriginalLayerRegion.cc +++ b/src/db/db/dbOriginalLayerRegion.cc @@ -382,7 +382,7 @@ OriginalLayerRegion::less (const Region &other) const void OriginalLayerRegion::init () { - m_is_merged = true; + m_is_merged = false; m_merged_polygons_valid = false; } diff --git a/src/drc/unit_tests/drcSimpleTests.cc b/src/drc/unit_tests/drcSimpleTests.cc index eed4957f8..30681c13b 100644 --- a/src/drc/unit_tests/drcSimpleTests.cc +++ b/src/drc/unit_tests/drcSimpleTests.cc @@ -1318,3 +1318,13 @@ TEST(54_issue1011) run_test (_this, "54", false); } +TEST(55_drccount) +{ + run_test (_this, "55", false); +} + +TEST(55d_drccount) +{ + run_test (_this, "55", true); +} + diff --git a/testdata/drc/drcSimpleTests_55.drc b/testdata/drc/drcSimpleTests_55.drc new file mode 100644 index 000000000..7d3663fd3 --- /dev/null +++ b/testdata/drc/drcSimpleTests_55.drc @@ -0,0 +1,20 @@ + +source $drc_test_source +target $drc_test_target + +if $drc_test_deep + deep +end + +licon = input(66, 44) + +licon.output(66, 44) + +licon_cluster = licon.sized(0.2).sized(-0.2) + +single = licon_cluster.drc(secondary(licon).count == 1) +single.sized(0.1).output(100, 0) + +single = licon_cluster.drc(if_any(secondary(licon).count == 1)) +single.sized(0.1).output(101, 0) + diff --git a/testdata/drc/drcSimpleTests_55.gds b/testdata/drc/drcSimpleTests_55.gds new file mode 100644 index 000000000..962ce17eb Binary files /dev/null and b/testdata/drc/drcSimpleTests_55.gds differ diff --git a/testdata/drc/drcSimpleTests_55d.gds b/testdata/drc/drcSimpleTests_55d.gds new file mode 100644 index 000000000..9e4e4847d Binary files /dev/null and b/testdata/drc/drcSimpleTests_55d.gds differ diff --git a/testdata/drc/drcSimpleTests_au55.gds b/testdata/drc/drcSimpleTests_au55.gds new file mode 100644 index 000000000..5fb75f2a7 Binary files /dev/null and b/testdata/drc/drcSimpleTests_au55.gds differ diff --git a/testdata/drc/drcSimpleTests_au55d.gds b/testdata/drc/drcSimpleTests_au55d.gds new file mode 100644 index 000000000..600937dbd Binary files /dev/null and b/testdata/drc/drcSimpleTests_au55d.gds differ