diff options
Diffstat (limited to 'src/gtksnippet.c')
-rw-r--r-- | src/gtksnippet.c | 84 |
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; } |