From 5025c715eebed7839e7933238cea0071ae5b01f1 Mon Sep 17 00:00:00 2001 From: ellson Date: Fri, 5 May 2006 15:24:33 +0000 Subject: [PATCH] deal with failures to read graph --- lib/gvc/gvevent.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/gvc/gvevent.c b/lib/gvc/gvevent.c index b6597897f..cb07fe8bb 100644 --- a/lib/gvc/gvevent.c +++ b/lib/gvc/gvevent.c @@ -537,29 +537,33 @@ static void gvevent_read (GVJ_t * job, char *filename, char *layout) { FILE *f; GVC_t *gvc; + Agraph_t *g = NULL; gvlayout_engine_t *gvle; gvc = job->gvc; - if (gvc->g) { - gvle = gvc->layout.engine; - if (gvle && gvle->cleanup) - gvle->cleanup(gvc->g); - graph_cleanup(gvc->g); - agclose(gvc->g); - } if (!filename) { - gvc->g = agopen("G", AGDIGRAPH); + g = agopen("G", AGDIGRAPH); job->output_filename = "new.dot"; } else { f = fopen(filename, "r"); if (!f) - return; /* FIXME - need some error handling */ - gvc->g = agread(f); + return; /* FIXME - need some error handling */ + g = agread(f); fclose(f); } - GD_gvc(gvc->g) = gvc; - gvLayout(gvc, gvc->g, layout); + if (!g) + return; /* FIXME - need some error handling */ + if (gvc->g) { + gvle = gvc->layout.engine; + if (gvle && gvle->cleanup) + gvle->cleanup(gvc->g); + graph_cleanup(gvc->g); + agclose(gvc->g); + } + gvc->g = g; + GD_gvc(g) = gvc; + gvLayout(gvc, g, layout); job->selected_obj = NULL; job->current_obj = NULL; job->needs_refresh = 1; -- 2.40.0