node_t *n;
edge_t *e;
int i = 0;
- rdata* alg = N_NEW(agnnodes(g), rdata);
+ int n_nodes = agnnodes(g);
+ rdata* alg;
- GD_neato_nlist(g) = N_NEW(agnnodes(g) + 1, node_t *);
+ alg = N_NEW(n_nodes, rdata);
+ GD_neato_nlist(g) = N_NEW(n_nodes + 1, node_t *);
for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
neato_init_node(n);
ND_alg(n) = alg + i;
char *s;
int setRoot = 0;
+ if (agnnodes(g) == 0) return;
+
twopi_init_graph(g);
s = agget(g, "root");
if ((s = agget(g, "root"))) {
edge_t *e;
n = agfstnode (g);
+ if (!n) return; /* empty graph */
free (ND_alg(n));
for (; n; n = agnxtnode(g, n)) {
for (e = agfstout(g, n); e; e = agnxtout(g, e)) {