printing: Unref old spool_io before setting new one
Unref private spool_io of GtkPrintJob before setting it to a new one in gtk_print_job_set_source_file() and gtk_print_job_set_source_fd() to prevent a leak. Fixes: #4627
This commit is contained in:
parent
8fc2af7bb3
commit
0387486407
@ -430,6 +430,9 @@ gtk_print_job_set_source_file (GtkPrintJob *job,
|
|||||||
|
|
||||||
priv = job->priv;
|
priv = job->priv;
|
||||||
|
|
||||||
|
if (job->priv->spool_io != NULL)
|
||||||
|
g_io_channel_unref (job->priv->spool_io);
|
||||||
|
|
||||||
priv->spool_io = g_io_channel_new_file (filename, "r", &tmp_error);
|
priv->spool_io = g_io_channel_new_file (filename, "r", &tmp_error);
|
||||||
|
|
||||||
if (tmp_error == NULL)
|
if (tmp_error == NULL)
|
||||||
@ -472,6 +475,9 @@ gtk_print_job_set_source_fd (GtkPrintJob *job,
|
|||||||
g_return_val_if_fail (GTK_IS_PRINT_JOB (job), FALSE);
|
g_return_val_if_fail (GTK_IS_PRINT_JOB (job), FALSE);
|
||||||
g_return_val_if_fail (fd >= 0, FALSE);
|
g_return_val_if_fail (fd >= 0, FALSE);
|
||||||
|
|
||||||
|
if (job->priv->spool_io != NULL)
|
||||||
|
g_io_channel_unref (job->priv->spool_io);
|
||||||
|
|
||||||
job->priv->spool_io = g_io_channel_unix_new (fd);
|
job->priv->spool_io = g_io_channel_unix_new (fd);
|
||||||
if (g_io_channel_set_encoding (job->priv->spool_io, NULL, error) != G_IO_STATUS_NORMAL)
|
if (g_io_channel_set_encoding (job->priv->spool_io, NULL, error) != G_IO_STATUS_NORMAL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
Loading…
Reference in New Issue
Block a user