From 9eb7d89c1609f9ebec4ab8545c95de3f8874e2da Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Sun, 3 Apr 2011 22:09:06 +0200 Subject: xps: Plug memory leaks. --- xps/xps_zip.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'xps/xps_zip.c') diff --git a/xps/xps_zip.c b/xps/xps_zip.c index d353ec11..abb78832 100644 --- a/xps/xps_zip.c +++ b/xps/xps_zip.c @@ -451,6 +451,11 @@ static void xps_free_font_func(void *ptr) fz_dropfont(ptr); } +static void xps_free_colorspace_func(void *ptr) +{ + fz_dropcolorspace(ptr); +} + int xps_free_context(xps_context *ctx) { @@ -459,14 +464,19 @@ xps_free_context(xps_context *ctx) if (ctx->file) fclose(ctx->file); + if (ctx->start_part) + fz_free(ctx->start_part); + for (i = 0; i < ctx->zip_count; i++) fz_free(ctx->zip_table[i].name); fz_free(ctx->zip_table); xps_hash_free(ctx->font_table, xps_free_key_func, xps_free_font_func); - xps_hash_free(ctx->colorspace_table, xps_free_key_func, NULL); + xps_hash_free(ctx->colorspace_table, xps_free_key_func, xps_free_colorspace_func); xps_free_page_list(ctx); + fz_free(ctx); + return 0; } -- cgit v1.2.3