diff options
-rw-r--r-- | autoarchive/autoar-extract.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/autoarchive/autoar-extract.c b/autoarchive/autoar-extract.c index 5b4adb761..508fb72a3 100644 --- a/autoarchive/autoar-extract.c +++ b/autoarchive/autoar-extract.c @@ -1454,16 +1454,6 @@ autoar_extract_start (AutoarExtract *arextract) } static void -autoar_extract_start_async_data_free (AutoarExtractPrivate *data) -{ - g_free (data->source); - g_free (data->output); - g_free (data->buffer); - g_object_unref (data->arpref); - g_free (data); -} - -static void autoar_extract_start_async_thread (GTask *task, gpointer source_object, gpointer task_data, @@ -1472,22 +1462,18 @@ autoar_extract_start_async_thread (GTask *task, AutoarExtract *arextract = source_object; autoar_extract_run (arextract, TRUE); g_task_return_pointer (task, NULL, g_free); + g_object_unref (arextract); } void autoar_extract_start_async (AutoarExtract *arextract) { - AutoarExtractPrivate *data; GTask *task; - data = g_memdup (arextract->priv, sizeof (AutoarExtractPrivate)); - data->source = g_strdup (data->source); - data->output = g_strdup (data->output); - data->arpref = g_object_ref (data->arpref); - data->buffer = g_new (char, data->buffer_size); + g_object_ref (arextract); task = g_task_new (arextract, NULL, NULL, NULL); - g_task_set_task_data (task, data, (GDestroyNotify) autoar_extract_start_async_data_free); + g_task_set_task_data (task, NULL, NULL); g_task_run_in_thread (task, autoar_extract_start_async_thread); } |