diff options
Diffstat (limited to 'src/format/dex/class.c')
-rw-r--r-- | src/format/dex/class.c | 38 |
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; + +} + + + + + + + + + + |