From: Matthew Fernandez Date: Sat, 14 Nov 2020 20:00:49 +0000 (-0800) Subject: anticipate add_tree_edge() returning non-zero X-Git-Tag: 2.46.1~31^2~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=53d1d12d5622bfa87baf1b9d88debe763654b370;p=graphviz anticipate add_tree_edge() returning non-zero Related to #1801. --- diff --git a/lib/common/ns.c b/lib/common/ns.c index 74d9c7afa..1cc03210e 100644 --- a/lib/common/ns.c +++ b/lib/common/ns.c @@ -279,14 +279,18 @@ static int tight_subtree_search(Agnode_t *v, subtree_t *st) for (i = 0; (e = ND_in(v).list[i]); i++) { if (TREE_EDGE(e)) continue; if ((ND_subtree(agtail(e)) == 0) && (SLACK(e) == 0)) { - add_tree_edge(e); + if (add_tree_edge(e) != 0) { + return -1; + } rv += tight_subtree_search(agtail(e),st); } } for (i = 0; (e = ND_out(v).list[i]); i++) { if (TREE_EDGE(e)) continue; if ((ND_subtree(aghead(e)) == 0) && (SLACK(e) == 0)) { - add_tree_edge(e); + if (add_tree_edge(e) != 0) { + return -1; + } rv += tight_subtree_search(aghead(e),st); } } @@ -480,7 +484,9 @@ subtree_t *merge_trees(Agedge_t *e) /* entering tree edge */ delta = -SLACK(e); tree_adjust(t1->rep,0,delta); } - add_tree_edge(e); + if (add_tree_edge(e) != 0) { + return NULL; + } rv = STsetUnion(t0,t1); return rv;