summaryrefslogtreecommitdiff
path: root/src/format/dex/dex.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-10-09 11:57:58 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-10-09 11:57:58 (GMT)
commit0b6e87de0d4313f8ef31907bc48ce4d7f7749738 (patch)
treef268e98efa733379b275d8834864f13cff6fa9ac /src/format/dex/dex.c
parent3628caa2311ee89ad0d2a0aa2438d7e85b497da4 (diff)
Loaded all Dex pool items using several threads.
Diffstat (limited to 'src/format/dex/dex.c')
-rwxr-xr-xsrc/format/dex/dex.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/format/dex/dex.c b/src/format/dex/dex.c
index 582390a..d02111c 100755
--- a/src/format/dex/dex.c
+++ b/src/format/dex/dex.c
@@ -248,6 +248,7 @@ GBinFormat *g_dex_format_new(GBinContent *content, GExeFormat *parent, GtkStatus
GDexFormat *result; /* Structure à retourner */
GBinFormat *base; /* Version basique du format */
vmpa2t pos; /* Position de tête de lecture */
+ wgroup_id_t gid; /* Identifiant pour les tâches */
result = g_object_new(G_TYPE_DEX_FORMAT, NULL);
@@ -265,13 +266,15 @@ GBinFormat *g_dex_format_new(GBinContent *content, GExeFormat *parent, GtkStatus
/* TODO : vérifier que les *_id ne se chevauchent pas */
- if (!load_all_dex_types(result, status))
+ gid = g_work_queue_define_work_group(get_work_queue());
+
+ if (!load_all_dex_types(result, gid, status))
goto gdfn_error;
- if (!load_all_dex_fields(result, status))
+ if (!load_all_dex_fields(result, gid, status))
goto gdfn_error;
- if (!load_all_dex_classes(result, status))
+ if (!load_all_dex_classes(result, gid, status))
goto gdfn_error;
if (!g_binary_format_complete_loading(base, status))