diff options
Diffstat (limited to 'src/analysis/line_code.c')
-rw-r--r-- | src/analysis/line_code.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/analysis/line_code.c b/src/analysis/line_code.c index 4ceabec..8f9f925 100644 --- a/src/analysis/line_code.c +++ b/src/analysis/line_code.c @@ -62,7 +62,7 @@ static void g_code_line_init(GCodeLine *); void g_code_line_get_binary_len(GCodeLine *, off_t *); /* Ajoute à un texte GTK le contenu de la ligne de code. */ -static void g_code_line_add_to_gtk_buffer(GCodeLine *, MainRendering, GtkTextBuffer *, GtkTextIter *, gint [SAR_COUNT]); +static void g_code_line_add_to_gtk_buffer(GCodeLine *, MainRendering, GtkTextBuffer *, GtkTextIter *, size_t [SAR_COUNT]); @@ -159,7 +159,7 @@ void g_code_line_get_binary_len(GCodeLine *line, off_t *blen) * * ******************************************************************************/ -static void g_code_line_add_to_gtk_buffer(GCodeLine *line, MainRendering rendering, GtkTextBuffer *buffer, GtkTextIter *iter, gint lengths[SAR_COUNT]) +static void g_code_line_add_to_gtk_buffer(GCodeLine *line, MainRendering rendering, GtkTextBuffer *buffer, GtkTextIter *iter, size_t lengths[SAR_COUNT]) { bool show_address; /* Affichage de l'adresse ? */ bool show_code; /* Affichage du code brut ? */ @@ -182,6 +182,7 @@ static void g_code_line_add_to_gtk_buffer(GCodeLine *line, MainRendering renderi msize = g_arch_processor_get_memory_size(g_rendering_options_get_processor(line->options)); len = vmpa_to_string(G_RENDERING_LINE(line)->offset, msize, address); + lengths[SAR_ADDRESS] = len; g_content_exporter_insert_with_gtk_tag(G_CONTENT_EXPORTER(line), buffer, iter, address, len, RTT_NONE); @@ -198,6 +199,8 @@ static void g_code_line_add_to_gtk_buffer(GCodeLine *line, MainRendering renderi content = g_binary_format_get_content(G_BIN_FORMAT(g_rendering_options_get_format(line->options)), NULL); g_arch_instruction_get_location(line->instr, &bin_offset, &bin_len, NULL); + lengths[SAR_CODE] = MAX(lengths[SAR_CODE], bin_len * 3 - 1); + bin_code = (char *)calloc(bin_len * 3, sizeof(char)); for (i = 0; i < bin_len; i++) @@ -224,6 +227,8 @@ static void g_code_line_add_to_gtk_buffer(GCodeLine *line, MainRendering renderi g_rendering_options_get_format(line->options), ASX_INTEL/*FIXME*/, buffer, iter); + lengths[SAR_INSTRUCTION] = MAX(lengths[SAR_INSTRUCTION], 4 /* FIXME */); + } |