diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-04-20 12:07:19 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-04-20 12:07:19 (GMT) |
commit | 59f319d9a6961a7424c7b32f49aa7ac1045a1d4c (patch) | |
tree | e9d62c684dd8d8f5e141b9332994041bd2371f9a /src/analysis/disass/loop.c | |
parent | 8962a4e61411c8362d5f4be63496977164b886a8 (diff) |
Protected all concurrent accesses to sources and destinations of instructions.
Diffstat (limited to 'src/analysis/disass/loop.c')
-rw-r--r-- | src/analysis/disass/loop.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/analysis/disass/loop.c b/src/analysis/disass/loop.c index e7dbbd7..89a4bc9 100644 --- a/src/analysis/disass/loop.c +++ b/src/analysis/disass/loop.c @@ -64,8 +64,8 @@ static void detect_back_edges(dragon_node *nodes, size_t count) get_dragon_node_bounding_instructions(node, NULL, &last); + g_arch_instruction_wlock_dest(last); dcount = g_arch_instruction_get_destinations(last, &dests, &types, NULL); - if (dcount == 0) continue; for (i = 0; i < dcount; i++) switch (types[i]) @@ -102,6 +102,8 @@ static void detect_back_edges(dragon_node *nodes, size_t count) } + g_arch_instruction_wunlock_dest(last); + } } |