summaryrefslogtreecommitdiffstats
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
commit4b7090a13f499332af917d1cc69f0c775fc50014 (patch)
tree6f3a7997fd29e04bf28567409b261985fa826ffe
parente063ee04c524694967268fe57de80457cafa91da (diff)
downloadgsoc2013-libgnome-autoar-4b7090a13f499332af917d1cc69f0c775fc50014.tar
gsoc2013-libgnome-autoar-4b7090a13f499332af917d1cc69f0c775fc50014.tar.gz
gsoc2013-libgnome-autoar-4b7090a13f499332af917d1cc69f0c775fc50014.tar.bz2
gsoc2013-libgnome-autoar-4b7090a13f499332af917d1cc69f0c775fc50014.tar.lz
gsoc2013-libgnome-autoar-4b7090a13f499332af917d1cc69f0c775fc50014.tar.xz
gsoc2013-libgnome-autoar-4b7090a13f499332af917d1cc69f0c775fc50014.tar.zst
gsoc2013-libgnome-autoar-4b7090a13f499332af917d1cc69f0c775fc50014.zip
Remove unneeded memory allocation and copying
-rw-r--r--autoar-extract.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/autoar-extract.c b/autoar-extract.c
index 5b4adb7..508fb72 100644
--- a/autoar-extract.c
+++ b/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);
}