summaryrefslogtreecommitdiff
path: root/src/analysis/binary.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2010-11-11 01:22:43 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2010-11-11 01:22:43 (GMT)
commitb33a52031c0d44a79604bc8d9036c30bffd020cb (patch)
treec825e3330684ca57f7c423328cd116b2d6ec0f6a /src/analysis/binary.c
parent828124e38d266e382bb1477ef51c9fac8e81c591 (diff)
Built some expressions for the decompilation tree.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@190 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/binary.c')
-rw-r--r--src/analysis/binary.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/analysis/binary.c b/src/analysis/binary.c
index 949bb31..0159b29 100644
--- a/src/analysis/binary.c
+++ b/src/analysis/binary.c
@@ -593,6 +593,22 @@ static void limit_all_routines(GRenderingLine *lines, GBinRoutine **routines, si
for (i = 0; i < count; i++)
{
+ /* Instruction de départ */
+
+ /* FIXME : faire mieux ! */
+
+ line = g_rendering_line_find_by_address(lines, NULL, starts[i]);
+ if (line != NULL) line = g_rendering_line_loop_for_code(line, NULL);
+
+ if (line != NULL)
+ {
+ instr = g_code_line_get_instruction(G_CODE_LINE(line));
+
+ g_binary_routine_set_instructions(routines[i], instr);
+
+ }
+
+
if (lengths[i] > 0) continue;
start = g_binary_routine_get_address(routines[i]);