aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2013-07-29 00:38:05 +0800
committerLAN-TW <lantw44@gmail.com>2013-07-29 00:38:05 +0800
commit641672231bef57bdb4ac3bec4260b2d8ea06969f (patch)
tree567c5053807895302c2c13ce71a0675945eb9c2d
parent805747125f2cce0fcff814f9f7fb46463f89a651 (diff)
downloadgsoc2013-epiphany-641672231bef57bdb4ac3bec4260b2d8ea06969f.tar
gsoc2013-epiphany-641672231bef57bdb4ac3bec4260b2d8ea06969f.tar.gz
gsoc2013-epiphany-641672231bef57bdb4ac3bec4260b2d8ea06969f.tar.bz2
gsoc2013-epiphany-641672231bef57bdb4ac3bec4260b2d8ea06969f.tar.lz
gsoc2013-epiphany-641672231bef57bdb4ac3bec4260b2d8ea06969f.tar.xz
gsoc2013-epiphany-641672231bef57bdb4ac3bec4260b2d8ea06969f.tar.zst
gsoc2013-epiphany-641672231bef57bdb4ac3bec4260b2d8ea06969f.zip
Remove unneeded memory allocation and copying
-rw-r--r--autoarchive/autoar-extract.c20
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);
}