summaryrefslogtreecommitdiffstats
path: root/src/ufo-write-task.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ufo-write-task.c')
-rw-r--r--src/ufo-write-task.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/ufo-write-task.c b/src/ufo-write-task.c
index 2e19c64..0f1e478 100644
--- a/src/ufo-write-task.c
+++ b/src/ufo-write-task.c
@@ -126,6 +126,10 @@ ufo_write_task_new (void)
static gchar *
get_current_filename (UfoWriteTaskPrivate *priv)
{
+ if (!priv->filename) {
+ return NULL;
+ }
+
if (!priv->num_fmt_specifiers)
return g_strdup (priv->filename);
@@ -357,7 +361,7 @@ retry:
GError *error = NULL;
gchar *filename = get_current_filename (priv);
- if (!can_be_written (filename, &error)) {
+ if (filename && !can_be_written (filename, &error)) {
g_warning ("%s", error->message);
g_free (filename);
g_error_free (error);
@@ -366,7 +370,9 @@ retry:
}
ufo_writer_open (priv->writer, filename);
- g_free (filename);
+ if (filename) {
+ g_free (filename);
+ }
priv->opened = TRUE;
}
@@ -551,8 +557,10 @@ ufo_write_task_finalize (GObject *object)
priv = UFO_WRITE_TASK_GET_PRIVATE (object);
- g_free (priv->filename);
- priv->filename= NULL;
+ if (priv->filename) {
+ g_free (priv->filename);
+ priv->filename= NULL;
+ }
if (priv->kernel) {
UFO_RESOURCES_CHECK_CLERR (clReleaseKernel (priv->kernel));