From 16d662229d030a6a02d9b74b918dc1b40f7cb6ff Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 21 Nov 2022 23:15:56 +0100 Subject: [PATCH 1/2] Fixed issue #1190 (Edges#extended_xx in deep mode) --- src/db/db/dbDeepEdges.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 ())); } } From 6e2310186b1ec9d14bd58461d71b12d064b46dd2 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 21 Nov 2022 23:27:19 +0100 Subject: [PATCH 2/2] Added tests --- src/drc/unit_tests/drcSimpleTests.cc | 9 +++++++++ testdata/drc/drcSimpleTests_57.drc | 18 ++++++++++++++++++ testdata/drc/drcSimpleTests_57.gds | Bin 0 -> 10262 bytes testdata/drc/drcSimpleTests_au57.gds | Bin 0 -> 5450 bytes testdata/drc/drcSimpleTests_au57d.gds | Bin 0 -> 3826 bytes 5 files changed, 27 insertions(+) create mode 100644 testdata/drc/drcSimpleTests_57.drc create mode 100644 testdata/drc/drcSimpleTests_57.gds create mode 100644 testdata/drc/drcSimpleTests_au57.gds create mode 100644 testdata/drc/drcSimpleTests_au57d.gds diff --git a/src/drc/unit_tests/drcSimpleTests.cc b/src/drc/unit_tests/drcSimpleTests.cc index 741646c9e..779583d31 100644 --- a/src/drc/unit_tests/drcSimpleTests.cc +++ b/src/drc/unit_tests/drcSimpleTests.cc @@ -1328,3 +1328,12 @@ TEST(55d_drccount) run_test (_this, "55", 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 0000000000000000000000000000000000000000..a9ab615dbd0d4a14e79aa2dc8ea7160ff88b8ffb GIT binary patch literal 10262 zcmb7~O=w(I6vzLWB$Jp%6WjEICfL+ex{%ryq*}0&#)u6qwl-PRqCun@i-=aSbrY$& zXo@bf5iKbwf*%X=e|278Rq@oaiE;(%>CVS=f3;? z=i^0n)oMpH(oyUANvqT^sY`v!->bJ)KQJ{R4RvFAK6UT()a2dj>Xqu(*3_Z;bv5&FV6anKbwTRhYX7s>;P-{y@L}=!mN{woh~#$b zpyZ#s^>O~WbD8hD-d5Z)|D?}9K32@R<1K061Z!usXDb@9IoI=#`XUt%`Vt{J<_pb(v1VssVlb5{nCl|i|_NeG>;9Vo$9UEXAT~+-_a-a zt#0mGzk8D!jeovXnq|ee^^G0&W&d#ZUfY-S>L2Nz*w%bsu+q-6<*bcAx_tbLwyV27 zD#l-vu2|=#e8uXUZFkf=kXEE2pWT0F&sW8Mm`y9Jru-`OnOC>#CZm*Jvl~7yu9?}O zFTbMecNSOHPD_yT9r3f}uQdx%%85rNi`g-s)Y2q=- z?cv_&3XeZm5GVE}8}v1At1};RYd(XN`>^vT_ZdBhjmGbY8yRF}r_MB=o{#@-gN|~f+?vVL1`^-#~+PEM+|DANx zo@9f+Yn$DXCof8FXMc?P%A>XZiT^{*+RC2%+6c3!N29(T`BFObiK&jA5wpSH_4GTo zhliy{KTS4BJ-b7C?*Yl}xs@yYrCbkP?_Cc)F0B1w#R`GSqf-5=Gf>IbJlE$ zQXZjfbW^#P?*^=Jd@Mzvq}Zn1K`QHeinc9^4Zb`kyUu6j4*K%Zu7!D}K`N`K-Cce_vc4-TcaX~ZF3&|zeiQYTM=R@n(AOQNHm46t+buer znUDI)qjk&A(&AE-%A2)K?y@{QH8tF*ho`db{+{25D(1 z>MM`damzVAI3K0*=oDcs(gs(UD98_ig6=^DRgzT#1w99#AQuG+Iu#X^^)=dc zDu9B#7bxg&R8ZCpX_qYn1zi!KAjbv@a%`ZW0|OLfus}iI=GXH45c)PiLEi=_=-U7V zeH);lx&aER8=#=N0Sc-cprB3x3hES~piTh_>Xa+x=MX9mprFqN6jT8~L7xpM$mfCb ze7+X~ z_1S=e+y*GfH-LgZ8&Hq~00lV!P!P?3E7wDa%RoU~1`6UbP!N}af_@ZG&{+ZsdPG1$ zw+AR!?55VYJmUZgdMQ9bR|F{NZvX|I3ZS6p02Fi&fPy|iDb;+A(tJX)q6Z5U)aIpB z@w~j`xj9f!F9QXYFHlg!0tMA*1yxdw0tIy?P*5QP1yvhRP;meS6$emIaR3Ds2T)LP i00k8XP*8CI1(k0Fb#B!DGQ$4Zlb_U0wZByB>e7F2Mabm< literal 0 HcmV?d00001 diff --git a/testdata/drc/drcSimpleTests_au57.gds b/testdata/drc/drcSimpleTests_au57.gds new file mode 100644 index 0000000000000000000000000000000000000000..43381ea0de30c7211805c7a53b1128dbbccb4325 GIT binary patch literal 5450 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 C4i)JD literal 0 HcmV?d00001