summaryrefslogtreecommitdiff
path: root/src/format/dex/dex-int.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/dex/dex-int.c')
-rw-r--r--src/format/dex/dex-int.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/format/dex/dex-int.c b/src/format/dex/dex-int.c
index be1c211..025429f 100644
--- a/src/format/dex/dex-int.c
+++ b/src/format/dex/dex-int.c
@@ -134,15 +134,72 @@ bool read_dex_type_id_item(const GDexFormat *format, off_t *pos, type_id_item *i
}
+/******************************************************************************
+* *
+* Paramètres : format = informations chargées à consulter. *
+* pos = position de début de lecture. [OUT] *
+* proto_id = structure lue à retourner. [OUT] *
+* *
+* Description : Procède à la lecture d'une description de prototype. *
+* *
+* Retour : Bilan de l'opération. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+bool read_dex_proto_id_item(const GDexFormat *format, off_t *pos, proto_id_item *proto_id)
+{
+ bool result; /* Bilan à retourner */
+ const bin_t *content; /* Contenu binaire à lire */
+ off_t length; /* Taille totale du contenu */
+ result = true;
+ content = G_BIN_FORMAT(format)->content;
+ length = G_BIN_FORMAT(format)->length;
+ result &= read_u32(&proto_id->shorty_idx, content, pos, length, SRE_LITTLE);
+ result &= read_u32(&proto_id->return_type_idx, content, pos, length, SRE_LITTLE);
+ result &= read_u32(&proto_id->parameters_off, content, pos, length, SRE_LITTLE);
+ return result;
+}
+/******************************************************************************
+* *
+* Paramètres : format = informations chargées à consulter. *
+* pos = position de début de lecture. [OUT] *
+* field_id = structure lue à retourner. [OUT] *
+* *
+* Description : Procède à la lecture d'une description de champ. *
+* *
+* Retour : Bilan de l'opération. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+bool read_dex_field_id_item(const GDexFormat *format, off_t *pos, field_id_item *field_id)
+{
+ bool result; /* Bilan à retourner */
+ const bin_t *content; /* Contenu binaire à lire */
+ off_t length; /* Taille totale du contenu */
+
+ result = true;
+ content = G_BIN_FORMAT(format)->content;
+ length = G_BIN_FORMAT(format)->length;
+
+ result &= read_u16(&field_id->class_idx, content, pos, length, SRE_LITTLE);
+ result &= read_u16(&field_id->type_idx, content, pos, length, SRE_LITTLE);
+ result &= read_u32(&field_id->name_idx, content, pos, length, SRE_LITTLE);
+
+ return result;
+
+}
/******************************************************************************