From: Mathis Beer Date: Thu, 12 Mar 2020 10:20:59 +0000 (+0100) Subject: Work around issue 1671: avoid creating a virtual edge loop. X-Git-Tag: stable_release_2.44.0~10^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=549c7725b043c03cf62dae3acc0509350d03cd7b;p=graphviz Work around issue 1671: avoid creating a virtual edge loop. Not an actual solution! The code removed from flat_rev is already done in merge_oneway. --- diff --git a/lib/dotgen/fastgr.c b/lib/dotgen/fastgr.c index 03d0396b1..ecfc201f0 100644 --- a/lib/dotgen/fastgr.c +++ b/lib/dotgen/fastgr.c @@ -338,7 +338,7 @@ basic_merge(edge_t * e, edge_t * rep) void merge_oneway(edge_t * e, edge_t * rep) { - if (rep == ED_to_virt(e)) { + if (rep == ED_to_virt(e) || e == ED_to_virt(rep)) { agerr(AGWARN, "merge_oneway glitch\n"); return; } diff --git a/lib/dotgen/mincross.c b/lib/dotgen/mincross.c index d15616683..c7c498541 100644 --- a/lib/dotgen/mincross.c +++ b/lib/dotgen/mincross.c @@ -1213,8 +1213,6 @@ void flat_rev(Agraph_t * g, Agedge_t * e) break; if (rev) { merge_oneway(e, rev); - if (ED_to_virt(e) == 0) - ED_to_virt(e) = rev; if ((ED_edge_type(rev) == FLATORDER) && (ED_to_orig(rev) == 0)) ED_to_orig(rev) = e;