diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-05-17 00:28:23 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-05-17 00:28:23 (GMT) |
commit | 7adb4243ad629554e496de173977721a8a5d0110 (patch) | |
tree | 18f50fcdab35e057b3a1a10e7e0c1f141e89eb39 /src/format/dex/dex-int.c | |
parent | 118a668adbf6ca9d4c549618e54f58330f46ce58 (diff) |
Given more details for each operand relative to one DEX pool.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@156 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/format/dex/dex-int.c')
-rw-r--r-- | src/format/dex/dex-int.c | 57 |
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; + +} /****************************************************************************** |