From: Emden R. Gansner Date: Sat, 13 Feb 2016 20:02:39 +0000 (-0500) Subject: Free installed plugins in gvFreeContext X-Git-Tag: TRAVIS_CI_BUILD_EXPERIMENTAL~38 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=37076a23bebed6655e5dfa53aa24786f175cc781;p=graphviz Free installed plugins in gvFreeContext --- diff --git a/ChangeLog b/ChangeLog index 84435d0ab..aeb6582ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ February 13, 2016 - Add cylinder shape for databases. + - Free installed plugins September 9, 2014 - Add plain shape for use with HTML-like labels. August 12, 2014 diff --git a/lib/gvc/gvcontext.c b/lib/gvc/gvcontext.c index 7600e14ae..1ef25ba73 100644 --- a/lib/gvc/gvcontext.c +++ b/lib/gvc/gvcontext.c @@ -75,6 +75,13 @@ int gvFreeContext(GVC_t * gvc) { GVG_t *gvg, *gvg_next; gvplugin_package_t *package, *package_next; + gvplugin_available_t *api, *api_next; + +#define ELEM(x) +1 + /* See gvcext.h for APIS and gvcint.h for an example usage of "+1" + to get the number of APIs. */ + unsigned int num_apis = APIS, i; +#undef ELEM emit_once_reset(); gvg_next = gvc->gvgs; @@ -95,6 +102,12 @@ int gvFreeContext(GVC_t * gvc) if (gvc->input_filenames) free(gvc->input_filenames); textfont_dict_close(gvc); + for (i = 0; i != num_apis; ++i) { + for (api = gvc->apis[i]; api != NULL; api = api_next) { + api_next = api->next; + free(api); + } + } free(gvc); return (graphviz_errors + agerrors()); }