summaryrefslogtreecommitdiff
path: root/src/gtksnippet.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtksnippet.c')
-rw-r--r--src/gtksnippet.c84
1 files changed, 76 insertions, 8 deletions
diff --git a/src/gtksnippet.c b/src/gtksnippet.c
index 7dc60f6..6470fcb 100644
--- a/src/gtksnippet.c
+++ b/src/gtksnippet.c
@@ -33,6 +33,79 @@
#define MARGIN_SPACE 4
+
+
+
+
+/******************************************************************************
+* *
+* Paramètres : offset = position de l'instruction à ajouter. *
+* instr = instruction à représenter ou NULL. *
+* comment = commentaire à imprimer ou NULL. *
+* *
+* Description : Crée une ligne de représentation insérable. *
+* *
+* Retour : Struture rassemblant les informations mise en place. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+code_line_info *create_code_line_info(uint64_t offset, asm_instr *instr, const char *comment)
+{
+ code_line_info *result; /* Structure à renvoyer */
+
+ result = (code_line_info *)calloc(1, sizeof(code_line_info));
+
+ result->offset = offset;
+ result->instr = instr;
+ result->comment = (comment != NULL ? strdup(comment) : NULL);
+
+ result->bp_set = FALSE;
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : line = informations à effacer de la mémoire. *
+* *
+* Description : Supprime une ligne de représentation. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void delete_code_line_info(code_line_info *line)
+{
+ free(line->instr);
+ free(line->comment);
+
+ free(line);
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
static void gtk_snippet_class_init(GtkSnippetClass *klass);
static void gtk_snippet_init(GtkSnippet *cpu);
static void gtk_snippet_size_request(GtkWidget *widget,
@@ -378,9 +451,7 @@ void gtk_snippet_set_processor(GtkSnippet *snippet, const asm_processor *proc)
/******************************************************************************
* *
* Paramètres : snippet = composant GTK à mettre à jour. *
-* offset = position de l'instruction à ajouter. *
-* instr = instruction à représenter ou NULL. *
-* comment = commentaire à imprimer ou NULL. *
+* line = informations à intégrer. *
* *
* Description : Ajoute une ligne dans le bloc de représentation. *
* *
@@ -390,14 +461,11 @@ void gtk_snippet_set_processor(GtkSnippet *snippet, const asm_processor *proc)
* *
******************************************************************************/
-void gtk_snippet_add_line(GtkSnippet *snippet, uint64_t offset, asm_instr *instr, const char *comment)
+void gtk_snippet_add_line(GtkSnippet *snippet, const code_line_info *line)
{
snippet->info = (code_line_info *)realloc(snippet->info, ++snippet->info_count * sizeof(code_line_info));
- snippet->info[snippet->info_count - 1].offset = offset;
- snippet->info[snippet->info_count - 1].instr = instr;
- snippet->info[snippet->info_count - 1].comment = (comment != NULL ? strdup(comment) : NULL);
- snippet->info[snippet->info_count - 1].bp_set = FALSE;
+ snippet->info[snippet->info_count - 1] = *line;
}