From c3d759c3b6d8fe6f2e4b27fa79fbda8faefda2fe Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Fri, 24 Mar 2017 16:41:47 +0100 Subject: [PATCH] printjob: Clarify array ownership in gtk_print_job_set_page_ranges() Add a documentation annotation saying that set_page_ranges transfers ownership of the GtkPageRange array. Add a g_free() call to fix a memory leak when set_page_ranges is used repeatedly. https://bugzilla.gnome.org/show_bug.cgi?id=780234 --- gtk/gtkprintjob.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gtk/gtkprintjob.c b/gtk/gtkprintjob.c index 571d2b0572..e74fdc01dc 100644 --- a/gtk/gtkprintjob.c +++ b/gtk/gtkprintjob.c @@ -781,7 +781,7 @@ gtk_print_job_get_page_ranges (GtkPrintJob *job, /** * gtk_print_job_set_page_ranges: * @job: a #GtkPrintJob - * @ranges: (array length=n_ranges): pointer to an array of + * @ranges: (array length=n_ranges) (transfer full): pointer to an array of * #GtkPageRange structs * @n_ranges: the length of the @ranges array * @@ -794,6 +794,7 @@ gtk_print_job_set_page_ranges (GtkPrintJob *job, GtkPageRange *ranges, gint n_ranges) { + g_free (job->priv->page_ranges); job->priv->page_ranges = ranges; job->priv->num_page_ranges = n_ranges; }