diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-03-11 21:57:05 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-03-11 21:57:05 (GMT) |
commit | 8088f1cbb4304c686ff41520099707a333084a4e (patch) | |
tree | 147411c3f90097dc1ae950ec390df2dfccf07ad7 /src/analysis/types/encaps.c | |
parent | a33dd28e763e3a8b04145fb549aca9320e100a4b (diff) |
Defined a new Dex demangler with MUTF-8 support as plugin.
Diffstat (limited to 'src/analysis/types/encaps.c')
-rw-r--r-- | src/analysis/types/encaps.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/analysis/types/encaps.c b/src/analysis/types/encaps.c index c3cf3ce..0dfc3af 100644 --- a/src/analysis/types/encaps.c +++ b/src/analysis/types/encaps.c @@ -39,6 +39,8 @@ struct _GEncapsulatedType GDataType *child; /* Sous-type encadré */ GBinRoutine *routine; /* Routine pointée */ + size_t dimension; /* Dimension quand applicable */ + }; /* Description de type encapsulé (classe) */ @@ -208,6 +210,7 @@ static GDataType *g_encapsulated_type_dup(const GEncapsulatedType *type) static char *g_encapsulated_type_to_string(const GEncapsulatedType *type) { char *result; /* Chaîne finale à renvoyer */ + size_t i; /* Boucle de parcours */ switch (type->type) { @@ -234,6 +237,11 @@ static char *g_encapsulated_type_to_string(const GEncapsulatedType *type) break; + case ECT_ARRAY: + result = stradd(result, " "); + for (i = 0; i < type->dimension; i++) + result = stradd(result, "[]"); + break; case ECT_REFERENCE: result = stradd(result, " &"); break; @@ -339,3 +347,42 @@ void g_encapsulated_type_get_item(const GEncapsulatedType *type, ...) va_end(ap); } + + +/****************************************************************************** +* * +* Paramètres : type = type à consulter. * +* * +* Description : Fournit la dimension éventuellement associée au type. * +* * +* Retour : Dimension positive ou nulle. * +* * +* Remarques : - * +* * +******************************************************************************/ + +size_t g_encapsulated_type_get_dimension(const GEncapsulatedType *type) +{ + return type->dimension; + +} + + +/****************************************************************************** +* * +* Paramètres : type = type à consulter. * +* dim = dimension positive ou nulle. * +* * +* Description : Définit la dimension éventuellement associée au type. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_encapsulated_type_set_dimension(GEncapsulatedType *type, size_t dim) +{ + type->dimension = dim; + +} |