diff options
Diffstat (limited to 'src/analysis/line_code.c')
-rw-r--r-- | src/analysis/line_code.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/analysis/line_code.c b/src/analysis/line_code.c index 5ca3623..84ab36c 100644 --- a/src/analysis/line_code.c +++ b/src/analysis/line_code.c @@ -61,7 +61,7 @@ static void g_code_line_init(GCodeLine *); void g_code_line_get_binary_len(GCodeLine *, off_t *); /* Met à jour la ligne de représentation de code. */ -void g_code_line_refresh_markup(GCodeLine *); +void g_code_line_refresh_markup(GCodeLine *, LinesMainOwner); @@ -140,7 +140,8 @@ void g_code_line_get_binary_len(GCodeLine *line, off_t *blen) /****************************************************************************** * * -* Paramètres : line = ligne de représentation à actualiser. * +* Paramètres : line = ligne de représentation à actualiser. * +* owner = support effectif final des lignes de code. * * * * Description : Met à jour la ligne de représentation de code. * * * @@ -150,7 +151,7 @@ void g_code_line_get_binary_len(GCodeLine *line, off_t *blen) * * ******************************************************************************/ -void g_code_line_refresh_markup(GCodeLine *line) +void g_code_line_refresh_markup(GCodeLine *line, LinesMainOwner owner) { size_t len; /* Taille du contenu */ char *content; /* Contenu réellement imprimé */ @@ -159,6 +160,7 @@ void g_code_line_refresh_markup(GCodeLine *line) char buffer[CODE_BUFFER_LEN]; /* Zone tampon à utiliser #1 */ char *buffer2; /* Zone tampon à utiliser #2 */ const uint8_t *exe_content; /* Contenu binaire global */ + const off_t *max_bin_len; /* Taille de ligne max/globale */ char *bin_code; /* Tampon du code binaire */ off_t k; /* Boucle de parcours #2 */ off_t j; /* Boucle de parcours #1 */ @@ -214,8 +216,9 @@ void g_code_line_refresh_markup(GCodeLine *line) if (line->options->show_code) { exe_content = get_exe_content(line->options->format, NULL); + max_bin_len = &G_RENDERING_LINE(line)->max_bin_len[owner]; - bin_code = (char *)calloc(G_RENDERING_LINE(line)->max_bin_len + 1, sizeof(char)); + bin_code = (char *)calloc(*max_bin_len + 1, sizeof(char)); k = 0; @@ -227,7 +230,7 @@ void g_code_line_refresh_markup(GCodeLine *line) k += snprintf(&bin_code[j * (2 + 1)], 3, "%02hhx", exe_content[bin_offset + j]); } - for (; k < G_RENDERING_LINE(line)->max_bin_len; k++) + for (; k < *max_bin_len; k++) snprintf(&bin_code[k], 2, " "); if (line->options->show_address) len += strlen("\t"); @@ -259,7 +262,7 @@ void g_code_line_refresh_markup(GCodeLine *line) content = (char *)realloc(content, len * sizeof(char)); strcat(content, "</tt>"); - pango_layout_set_markup(G_RENDERING_LINE(line)->layout, content, len - 1); + pango_layout_set_markup(G_RENDERING_LINE(line)->layout[owner], content, len - 1); free(content); |