diff --git a/src/db/db/dbDeepEdges.cc b/src/db/db/dbDeepEdges.cc index c1ca6f78b..93dd301d1 100644 --- a/src/db/db/dbDeepEdges.cc +++ b/src/db/db/dbDeepEdges.cc @@ -1200,8 +1200,9 @@ RegionDelegate *DeepEdges::extended (coord_type ext_b, coord_type ext_e, coord_t out = & to_commit [c->cell_index ()][v->first]; } + PolygonRefToShapesGenerator prgen (&layout, out); for (db::Shapes::shape_iterator si = c->shapes (edges.layer ()).begin (db::ShapeIterator::Edges); ! si.at_end (); ++si) { - out->insert (extended_edge (si->edge ().transformed (v->first), ext_b, ext_e, ext_o, ext_i).transformed (v->first.inverted ())); + prgen.put (extended_edge (si->edge ().transformed (v->first), ext_b, ext_e, ext_o, ext_i).transformed (v->first.inverted ())); } } diff --git a/src/drc/unit_tests/drcSimpleTests.cc b/src/drc/unit_tests/drcSimpleTests.cc index 2ee8dd3a2..c3969acbe 100644 --- a/src/drc/unit_tests/drcSimpleTests.cc +++ b/src/drc/unit_tests/drcSimpleTests.cc @@ -1338,3 +1338,12 @@ TEST(56d_angle_classes) run_test (_this, "56", true); } +TEST(57_issue_1190) +{ + run_test (_this, "57", false); +} + +TEST(57d_issue_1190) +{ + run_test (_this, "57", true); +} diff --git a/testdata/drc/drcSimpleTests_57.drc b/testdata/drc/drcSimpleTests_57.drc new file mode 100644 index 000000000..e65afe876 --- /dev/null +++ b/testdata/drc/drcSimpleTests_57.drc @@ -0,0 +1,18 @@ + +source $drc_test_source +target $drc_test_target + +if $drc_test_deep + deep +end + +l1 = input(1, 0) + +l1.output(1, 0) + +l1e = l1.edges +l1e.with_angle(ortho).extended_out(1.dbu).merged.output(100, 0) +l1e.with_angle(diagonal_only).extended_in(1.dbu).merged.output(101, 0) +l1e.with_angle(diagonal).extended(1.dbu, 2.dbu, 3.dbu, 4.dbu).merged.output(102, 0) + + diff --git a/testdata/drc/drcSimpleTests_57.gds b/testdata/drc/drcSimpleTests_57.gds new file mode 100644 index 000000000..a9ab615db Binary files /dev/null and b/testdata/drc/drcSimpleTests_57.gds differ diff --git a/testdata/drc/drcSimpleTests_au57.gds b/testdata/drc/drcSimpleTests_au57.gds new file mode 100644 index 000000000..43381ea0d Binary files /dev/null and b/testdata/drc/drcSimpleTests_au57.gds differ diff --git a/testdata/drc/drcSimpleTests_au57d.gds b/testdata/drc/drcSimpleTests_au57d.gds new file mode 100644 index 000000000..3a0e2a359 Binary files /dev/null and b/testdata/drc/drcSimpleTests_au57d.gds differ