summaryrefslogtreecommitdiff
path: root/src/analysis/routine.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/routine.c')
-rw-r--r--src/analysis/routine.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/analysis/routine.c b/src/analysis/routine.c
index 43097cc..d223165 100644
--- a/src/analysis/routine.c
+++ b/src/analysis/routine.c
@@ -24,6 +24,7 @@
#include "routine.h"
+#include <assert.h>
#include <malloc.h>
#include <string.h>
#include <stdio.h>
@@ -341,7 +342,7 @@ const char *g_binary_routine_get_name(const GBinRoutine *routine)
* *
******************************************************************************/
-void g_binary_routine_set_name_from_type(GBinRoutine *routine, GDataType *type)
+void g_binary_routine_set_typed_name(GBinRoutine *routine, GDataType *type)
{
if (routine->full_name != NULL)
g_object_unref(G_OBJECT(routine->full_name));
@@ -363,7 +364,7 @@ void g_binary_routine_set_name_from_type(GBinRoutine *routine, GDataType *type)
* *
******************************************************************************/
-GDataType *g_binary_routine_get_type_from_name(const GBinRoutine *routine)
+GDataType *g_binary_routine_get_typed_name(const GBinRoutine *routine)
{
GDataType *result; /* Type à retourner */
@@ -486,7 +487,22 @@ size_t g_binary_routine_get_args_count(const GBinRoutine *routine)
GBinVariable *g_binary_routine_get_arg(GBinRoutine *routine, size_t index)
{
- return routine->args[index];
+ GBinVariable *result; /* Argument à retourner */
+
+ assert(index < routine->args_count);
+
+ if (index >= routine->args_count)
+ result = NULL;
+
+ else
+ {
+ result = routine->args[index];
+
+ g_object_ref(G_OBJECT(result));
+
+ }
+
+ return result;
}
@@ -537,7 +553,7 @@ static char *g_binary_routine_get_label(const GBinRoutine *routine)
char *result; /* Etiquette à renvoyer */
if (routine->full_name != NULL)
- result = g_data_type_to_string(routine->full_name, false);
+ result = g_data_type_to_string(routine->full_name, true);
else
result = strdup(routine->name != NULL ? routine->name : "");