boilerplate: Cleanup the list of backends upon shutdown.

This commit is contained in:
Chris Wilson 2010-03-23 16:49:21 +00:00
parent 1ddcd5cf31
commit 25a77b263d
5 changed files with 22 additions and 0 deletions

View file

@ -836,3 +836,16 @@ cairo_boilerplate_version_string (void)
{
return CAIRO_VERSION_STRING;
}
void
cairo_boilerplate_fini (void)
{
while (cairo_boilerplate_targets != NULL) {
struct cairo_boilerplate_target_list *next;
next = cairo_boilerplate_targets->next;
free (cairo_boilerplate_targets);
cairo_boilerplate_targets = next;
}
}

View file

@ -216,6 +216,9 @@ cairo_boilerplate_version (void);
const char*
cairo_boilerplate_version_string (void);
void
cairo_boilerplate_fini (void);
#include "cairo-boilerplate-system.h"
CAIRO_END_DECLS

View file

@ -476,6 +476,8 @@ static void
cairo_perf_fini (cairo_perf_t *perf)
{
cairo_boilerplate_free_targets (perf->targets);
cairo_boilerplate_fini ();
free (perf->times);
cairo_debug_reset_static_data ();
#if HAVE_FCFINI

View file

@ -693,6 +693,8 @@ static void
cairo_perf_fini (cairo_perf_t *perf)
{
cairo_boilerplate_free_targets (perf->targets);
cairo_boilerplate_fini ();
free (perf->times);
cairo_debug_reset_static_data ();
#if HAVE_FCFINI

View file

@ -256,6 +256,8 @@ cairo_test_fini (cairo_test_context_t *ctx)
if (ctx->own_targets)
cairo_boilerplate_free_targets (ctx->targets_to_test);
cairo_boilerplate_fini ();
cairo_debug_reset_static_data ();
#if HAVE_FCFINI
FcFini ();