From 7efc82d0b78389638fd1b9fac7203f8aad13b53c Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Tue, 17 Jul 2018 23:22:28 +0200
Subject: Included the namespace when building routine labels.

---
 src/analysis/routine.c | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/analysis/routine.c b/src/analysis/routine.c
index cc1e337..f227cba 100644
--- a/src/analysis/routine.c
+++ b/src/analysis/routine.c
@@ -259,6 +259,8 @@ void g_binary_routine_set_namespace(GBinRoutine *routine, GDataType *namespace,
     if (routine->ns_sep != NULL)
         free(routine->ns_sep);
 
+    assert((namespace == NULL && sep == NULL) || (namespace != NULL && sep != NULL));
+
     routine->namespace = namespace;
     routine->ns_sep = sep;
 
@@ -555,12 +557,33 @@ void g_binary_routine_remove_arg(GBinRoutine *routine, size_t index)
 static char *g_binary_routine_get_label(const GBinRoutine *routine)
 {
     char *result;                           /* Etiquette à renvoyer        */
+    char *tmp;                              /* Construction temporaire     */
+
+    result = NULL;
+
+    if (routine->namespace != NULL)
+    {
+        tmp = g_data_type_to_string(routine->namespace, true);
+
+        result = stradd(result, tmp);
+        result = stradd(result, routine->ns_sep);
+
+        free(tmp);
+
+    }
 
     if (routine->full_name != NULL)
-        result = g_data_type_to_string(routine->full_name, true);
+    {
+        tmp = g_data_type_to_string(routine->full_name, true);
 
-    else
-        result = strdup(routine->name != NULL ? routine->name : "");
+        result = stradd(result, tmp);
+
+        free(tmp);
+
+    }
+
+    else if (routine->name != NULL)
+        result = stradd(result, routine->name);
 
     return result;
 
-- 
cgit v0.11.2-87-g4458