From cdfe7b0efbb358fdb3fff8f6d5a8d34d89b220e5 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Mon, 6 Aug 2018 17:37:47 +0200
Subject: Avoided to cut the rendering flow for volatile symbols.

---
 src/analysis/disass/output.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/analysis/disass/output.c b/src/analysis/disass/output.c
index b9b0f1f..83a6815 100644
--- a/src/analysis/disass/output.c
+++ b/src/analysis/disass/output.c
@@ -289,7 +289,7 @@ void print_disassembled_instructions(GBufferCache *cache, GCodingLanguage *lang,
         {
             /* Point d'entrée ? */
 
-            if (g_binary_symbol_get_target_type(symbol) == STP_ENTRY_POINT)
+            if (stype == STP_ENTRY_POINT)
                 flags |= BLF_ENTRYPOINT;
 
             /**
@@ -298,9 +298,14 @@ void print_disassembled_instructions(GBufferCache *cache, GCodingLanguage *lang,
              * On décide que, à partir du moment où il y a un symbole, il y a
              * là le début d'un nouveau bloc avec sa propre nouvelle gestion
              * des largeurs, quelque soit le type du symbole en question !
+             *
+             * Seule exception : les symboles créés de toute pièce, qui
+             * n'interviennent que comme opérandes, et qui ne peuvent donc
+             * pas couper le rendu du flot d'exécution.
              */
 
-            flags |= BLF_WIDTH_MANAGER;
+            if (stype != STP_DYN_STRING)
+                flags |= BLF_WIDTH_MANAGER;
 
             g_object_unref(G_OBJECT(symbol));
             symbol = get_symbol_iterator_next(siter);
-- 
cgit v0.11.2-87-g4458