summaryrefslogtreecommitdiff
path: root/src/format/dex/class.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/dex/class.c')
-rw-r--r--src/format/dex/class.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/format/dex/class.c b/src/format/dex/class.c
index 23e08a0..8182987 100644
--- a/src/format/dex/class.c
+++ b/src/format/dex/class.c
@@ -29,6 +29,7 @@
#include "dex-int.h"
#include "method.h"
+#include "pool.h"
@@ -42,6 +43,8 @@ struct _GDexClass
{
GObject parent; /* A laisser en premier */
+ class_def_item definition; /* Définition de la classe */
+
GDexMethod **direct_methods; /* Méthodes propres */
size_t dmethods_count; /* Quantité de ces méthodes */
GDexMethod **virtual_methods; /* Méthodes virtuelles */
@@ -157,6 +160,8 @@ static GDexClass *g_dex_class_new(const GDexFormat *format, off_t offset)
result = g_object_new(G_TYPE_DEX_CLASS, NULL);
+ result->definition = def;
+
index = 0;
for (i = 0; i < data.direct_methods_size; i++)
@@ -285,6 +290,39 @@ GBinPart **g_dex_class_get_parts(const GDexClass *class, GBinPart **parts, size_
}
+/******************************************************************************
+* *
+* Paramètres : class = informations chargées à consulter. *
+* format = représentation interne du format DEX à compléter. *
+* *
+* Description : Retrouve si possible le nom du fichier source d'une classe. *
+* *
+* Retour : Nom du fichier trouvé ou NULL si aucun. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+const char *g_dex_class_get_source_file(const GDexClass *class, const GDexFormat *format)
+{
+ const char *result; /* Trouvaille à renvoyer */
+
+ result = get_string_from_dex_pool(format,
+ class->definition.source_file_idx);
+
+ return result;
+
+}
+
+
+
+
+
+
+
+
+
+