diff options
author | Félix Poisot <felix@lhfblc.fr> | 2020-11-21 11:58:59 +0000 |
---|---|---|
committer | Félix Poisot <felix@lhfblc.fr> | 2020-11-21 11:58:59 +0000 |
commit | 8913b6e2fce42185c5ef8227be4d0b821d37f71d (patch) | |
tree | de45733dcd73b0006db29823e327fa69c2f2e4ea /src/cairo-pdf-surface.c | |
parent | 577477207a300fd75c93da93dbb233256d8b48d8 (diff) |
The array introduced in bff47b43 isn't cleared on surface finish
Diffstat (limited to 'src/cairo-pdf-surface.c')
-rw-r--r-- | src/cairo-pdf-surface.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c index 93fc9022c..4a7afe960 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -2207,6 +2207,7 @@ _cairo_pdf_surface_finish (void *abstract_surface) cairo_pdf_resource_t catalog; cairo_status_t status, status2; int size, i; + cairo_pdf_source_surface_t doc_surface; cairo_pdf_jbig2_global_t *global; char *label; @@ -2287,6 +2288,12 @@ _cairo_pdf_surface_finish (void *abstract_surface) _cairo_array_fini (&surface->alpha_linear_functions); _cairo_array_fini (&surface->page_patterns); _cairo_array_fini (&surface->page_surfaces); + + size = _cairo_array_num_elements (&surface->doc_surfaces); + for (i = 0; i < size; i++) { + _cairo_array_copy_element (&surface->doc_surfaces, i, &doc_surface); + cairo_surface_destroy (doc_surface.surface); + } _cairo_array_fini (&surface->doc_surfaces); _cairo_hash_table_foreach (surface->all_surfaces, _cairo_pdf_source_surface_entry_pluck, |