summaryrefslogtreecommitdiff
path: root/src/format/format.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-02-10 10:02:16 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-02-10 10:02:16 (GMT)
commit465488d5b231c2552116a305c48b5fcccea55a09 (patch)
treef4d072ad9cf56466f4e55d0608f7a3fe9204efaf /src/format/format.c
parent946f5f093c7265dc5a5e00694325605b249eea43 (diff)
Improved the support of the DEX format.
Diffstat (limited to 'src/format/format.c')
-rw-r--r--src/format/format.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/format/format.c b/src/format/format.c
index 8395c6e..387894c 100644
--- a/src/format/format.c
+++ b/src/format/format.c
@@ -52,6 +52,9 @@ static void g_binary_format_init(GBinFormat *);
/* Retire un symbole de la collection du format binaire. */
static void _g_binary_format_remove_symbol(GBinFormat *, size_t);
+/* Supprime les éventuels doublons au sein des symboles. */
+static void g_binary_format_delete_duplicated_symbols(GBinFormat *);
+
/* Recherche le symbole associé à une adresse. */
static bool _g_binary_format_find_symbol(const GBinFormat *, const vmpa2t *, __compar_fn_t, GBinSymbol **);
@@ -101,6 +104,30 @@ static void g_binary_format_init(GBinFormat *format)
}
+/******************************************************************************
+* *
+* Paramètres : format = instance à traiter. *
+* *
+* Description : Effectue les ultimes opérations de chargement d'un binaire. *
+* *
+* Retour : Bilan de l'opération. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+bool g_binary_format_complete_loading(GBinFormat *format)
+{
+ handle_binary_format(PGA_FORMAT_LOADER_LAST, format);
+
+ g_binary_format_delete_duplicated_symbols(format);
+
+ return true;
+
+}
+
+
+
/* FIXME : g_rw_lock_clear(&format->syms_lock);*/
@@ -431,7 +458,7 @@ void g_binary_format_sort_symbols(GBinFormat *format)
* *
******************************************************************************/
-void g_binary_format_delete_duplicated_symbols(GBinFormat *format)
+static void g_binary_format_delete_duplicated_symbols(GBinFormat *format)
{
size_t i; /* Boucle de parcours */
const mrange_t *range; /* Emplacement à consulter */