summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjell.ahlstedt@bredband.net>2017-03-24 16:41:47 +0100
committerKjell Ahlstedt <kjell.ahlstedt@bredband.net>2017-03-24 16:41:47 +0100
commit876e99df361678a3ff7b38c02f966a67ae537f82 (patch)
treeed23dcfcf4cd8ac6168a9d7deb872e9fa18dc8da
parent147e0512c54645eee5ea13370b67da4c2dc1682f (diff)
downloadgtk+-876e99df361678a3ff7b38c02f966a67ae537f82.tar.gz
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
-rw-r--r--gtk/gtkprintjob.c3
1 files changed, 2 insertions, 1 deletions
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;
}