diff options
| -rw-r--r-- | ChangeLog | 16 | ||||
| -rw-r--r-- | src/analysis/line-int.h | 6 | ||||
| -rw-r--r-- | src/analysis/line.c | 28 | ||||
| -rw-r--r-- | src/analysis/line.h | 20 | ||||
| -rw-r--r-- | src/analysis/line_code.c | 15 | ||||
| -rw-r--r-- | src/analysis/line_comment.c | 20 | ||||
| -rw-r--r-- | src/analysis/line_prologue.c | 9 | ||||
| -rw-r--r-- | src/gtkext/gtkblockview.c | 28 | ||||
| -rw-r--r-- | src/gtkext/gtkblockview.h | 6 | ||||
| -rw-r--r-- | src/gtkext/gtkgraphview.c | 10 | ||||
| -rw-r--r-- | src/project.c | 2 | 
11 files changed, 113 insertions, 47 deletions
| @@ -1,3 +1,19 @@ +09-07-01  Cyrille Bagard <nocbos@gmail.com> + +	* src/analysis/line.c: +	* src/analysis/line_code.c: +	* src/analysis/line_comment.c: +	* src/analysis/line.h: +	* src/analysis/line-int.h: +	* src/analysis/line_prologue.c: +	Make the lines to have different rendering widths depending on the views. + +	* src/gtkext/gtkblockview.c: +	* src/gtkext/gtkblockview.h: +	* src/gtkext/gtkgraphview.c: +	* src/project.c: +	Update calls. +  09-06-30  Cyrille Bagard <nocbos@gmail.com>  	* src/arch/x86/processor.c: diff --git a/src/analysis/line-int.h b/src/analysis/line-int.h index 59ef5f8..ea8bce0 100644 --- a/src/analysis/line-int.h +++ b/src/analysis/line-int.h @@ -36,7 +36,7 @@  typedef void (* get_bin_len_fc) (GRenderingLine *, off_t *);  /* Méthode de mise à jour d'une ligne de représentation. */ -typedef void (* refresh_markup_fc) (GRenderingLine *); +typedef void (* refresh_markup_fc) (GRenderingLine *, LinesMainOwner);  /* Ligne de représentation générique (instance) */ @@ -57,10 +57,10 @@ struct _GRenderingLine      GRenderingLine *to;                     /* Eventuelle ligne visée      */      InstructionLinkType link_type;          /* Type de visée               */ -    PangoLayout *layout;                    /* Moteur de rendu du code/txt */ +    PangoLayout *layout[LMO_COUNT];         /* Moteur de rendu du code/txt */      get_bin_len_fc get_bin_len;             /* Nbre d'octets représentés   */ -    off_t max_bin_len;                      /* Nombre global maximal       */ +    off_t max_bin_len[LMO_COUNT];           /* Nombre global maximal       */      refresh_markup_fc refresh_markup;       /* Reconstruit la représentat° */ diff --git a/src/analysis/line.c b/src/analysis/line.c index 958efe3..332e88d 100644 --- a/src/analysis/line.c +++ b/src/analysis/line.c @@ -104,6 +104,8 @@ static void g_rendering_line_init(GRenderingLine *line)  {      GdkScreen *screen;                      /* Ecran d'application         */      PangoFontDescription *desc;             /* Description de la police    */ +    LinesMainOwner i;                       /* Boucle de parcours          */ +      static PangoContext *context = NULL;    /* Contexte graphique Pango    */      DL_LIST_ITEM_INIT(&line->link); @@ -118,7 +120,8 @@ static void g_rendering_line_init(GRenderingLine *line)      } -    line->layout = pango_layout_new(context); +    for (i = 0; i < LMO_COUNT; i++) +        line->layout[i] = pango_layout_new(context);      line->get_bin_len = NULL;      line->refresh_markup = NULL; @@ -401,6 +404,7 @@ static GdkPixbuf *g_rendering_line_render_icon(const GRenderingLine *line, const  *                x1       = abscisse de la zone de rendu (texte).             *  *                y        = ordonnée de la zone de rendu.                     *  *                h        = hauteur réservée pour la ligne.                   * +*                owner    = support effectif final des lignes de code.        *  *                                                                             *  *  Description : Procède à l'initialisation des bases d'une représentation.   *  *                                                                             * @@ -410,11 +414,11 @@ static GdkPixbuf *g_rendering_line_render_icon(const GRenderingLine *line, const  *                                                                             *  ******************************************************************************/ -void g_rendering_line_draw(GRenderingLine *line, GdkDrawable *drawable, GdkGC *gc, gint x0, gint x1, gint y, gint h) +void g_rendering_line_draw(GRenderingLine *line, GdkDrawable *drawable, GdkGC *gc, gint x0, gint x1, gint y, gint h, LinesMainOwner owner)  {      GdkPixbuf *pixbuf;                      /* Données utiles au dessin    */ -    gdk_draw_layout(drawable, gc, x1, y, line->layout); +    gdk_draw_layout(drawable, gc, x1, y, line->layout[owner]);      if (line->to != NULL)          pixbuf = g_rendering_line_render_icon(line, "gtk-bold", GTK_ICON_SIZE_MENU); @@ -559,6 +563,7 @@ GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *lines, const GRen  *                                                                             *  *  Paramètres  : lines = liste de lignes de représentation à actualiser.      *  *                last  = dernière élément imposé du parcours ou NULL.         * +*                owner = support effectif des lignes pour l'appelant.         *  *                                                                             *  *  Description : Met à jour le nombre d'octets maximal par instruction.       *  *                                                                             * @@ -568,7 +573,7 @@ GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *lines, const GRen  *                                                                             *  ******************************************************************************/ -void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine *last) +void g_rendering_line_update_bin_len(GRenderingLine *lines, GRenderingLine *last, LinesMainOwner owner)  {      GRenderingLine *iter;                   /* Boucle de parcours          */      off_t bin_len;                          /* Taille d'instruction        */ @@ -586,8 +591,8 @@ void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine      lines_list_for_each(iter, lines)      { -        iter->max_bin_len = (bin_len > 0 ? bin_len * 2 + (bin_len - 1) : 0); -        iter->refresh_markup(iter); +        iter->max_bin_len[owner] = (bin_len > 0 ? bin_len * 2 + (bin_len - 1) : 0); +        iter->refresh_markup(iter, owner);          if (iter == last) break; @@ -600,6 +605,7 @@ void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine  *                                                                             *  *  Paramètres  : lines  = liste de lignes de représentation à actualiser.     *  *                last   = dernière élément imposé du parcours ou NULL.        * +*                owner  = support effectif final des lignes de code.          *  *                width  = largeur maximale des lignes. [OUT]                  *  *                height = hauteur maximale des lignes. [OUT]                  *  *                alone  = hauteur d'une seule ligne. [OUT]                    * @@ -612,7 +618,7 @@ void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine  *                                                                             *  ******************************************************************************/ -void g_rendering_line_get_size(GRenderingLine *lines, const GRenderingLine *last, int *width, int *height, int *alone) +void g_rendering_line_get_size(GRenderingLine *lines, const GRenderingLine *last, LinesMainOwner owner, int *width, int *height, int *alone)  {      GRenderingLine *iter;                   /* Boucle de parcours          */      int w;                                  /* Largeur de l'objet actuelle */ @@ -624,7 +630,7 @@ void g_rendering_line_get_size(GRenderingLine *lines, const GRenderingLine *last      lines_list_for_each(iter, lines)      { -        pango_layout_get_pixel_size(iter->layout, &w, &h); +        pango_layout_get_pixel_size(iter->layout[owner], &w, &h);          *width = MAX(*width, w);          *height += h; @@ -660,7 +666,11 @@ GRenderingLine *g_rendering_line_find_by_y(GRenderingLine *lines, const GRenderi      lines_list_for_each(result, lines)      { -        pango_layout_get_pixel_size(result->layout, NULL, &h); +        /** +         * Comme toutes les dispositions ont la même hauteur, +         * on utilise la première... +         */ +        pango_layout_get_pixel_size(result->layout[0], NULL, &h);          if (*y < h) break;          else *y -= h; diff --git a/src/analysis/line.h b/src/analysis/line.h index e06c53c..981cf90 100644 --- a/src/analysis/line.h +++ b/src/analysis/line.h @@ -34,6 +34,20 @@ +/* Support principal de lignes */ +typedef enum _LinesMainOwner +{ +    LMO_BLOCK,                              /* Unique bloc de code         */ +    LMO_GRAPH,                              /* Graphique de blocs de code  */ + +    LMO_COUNT + +} LinesMainOwner; + + + + +  /* Définitions des types de ligne */  typedef enum _RenderingLineType  { @@ -114,7 +128,7 @@ bool g_rendering_line_has_destination(const GRenderingLine *);  GRenderingLine *g_rendering_line_get_destination(const GRenderingLine *, InstructionLinkType *);  /* Procède à l'initialisation des bases d'une représentation. */ -void g_rendering_line_draw(GRenderingLine *, GdkDrawable *, GdkGC *, gint, gint, gint, gint); +void g_rendering_line_draw(GRenderingLine *, GdkDrawable *, GdkGC *, gint, gint, gint, gint, LinesMainOwner); @@ -131,10 +145,10 @@ void g_rendering_line_insert_into_lines(GRenderingLine **, GRenderingLine *, boo  GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *, const GRenderingLine *, const GRenderingLine *);  /* Met à jour le nombre d'octets maximal par instruction. */ -void g_rendering_line_update_bin_len(GRenderingLine *, const GRenderingLine *); +void g_rendering_line_update_bin_len(GRenderingLine *, GRenderingLine *, LinesMainOwner);  /* Fournit les dimensions de lignes de représentation. */ -void g_rendering_line_get_size(GRenderingLine *, const GRenderingLine *, int *, int *, int *); +void g_rendering_line_get_size(GRenderingLine *, const GRenderingLine *, LinesMainOwner, int *, int *, int *);  /* Recherche une ligne d'après sa position à l'écran. */  GRenderingLine *g_rendering_line_find_by_y(GRenderingLine *, const GRenderingLine *, gdouble *); 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); diff --git a/src/analysis/line_comment.c b/src/analysis/line_comment.c index 1d37613..331bd19 100644 --- a/src/analysis/line_comment.c +++ b/src/analysis/line_comment.c @@ -58,7 +58,7 @@ static void g_comment_line_class_init(GCommentLineClass *);  static void g_comment_line_init(GCommentLine *);  /* Met à jour la ligne de représentation de commentaires. */ -void g_comment_line_refresh_markup(GCommentLine *); +void g_comment_line_refresh_markup(GCommentLine *, LinesMainOwner); @@ -112,7 +112,8 @@ static void g_comment_line_init(GCommentLine *line)  /******************************************************************************  *                                                                             * -*  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 commentaires.       *  *                                                                             * @@ -122,11 +123,12 @@ static void g_comment_line_init(GCommentLine *line)  *                                                                             *  ******************************************************************************/ -void g_comment_line_refresh_markup(GCommentLine *line) +void g_comment_line_refresh_markup(GCommentLine *line, LinesMainOwner owner)  {      size_t len;                             /* Taille du contenu           */      char *content;                          /* Contenu réellement imprimé  */      char buffer[CODE_BUFFER_LEN];           /* Zone tampon à utiliser      */ +    const off_t *max_bin_len;               /* Taille de ligne max/globale */      size_t clen;                            /* Taille du commentaire       */      len = strlen("<tt>") + 1; @@ -176,8 +178,10 @@ void g_comment_line_refresh_markup(GCommentLine *line)      if (line->options->show_code)      { +        max_bin_len = &G_RENDERING_LINE(line)->max_bin_len[owner]; +          clen = (line->options->show_address ? strlen("\t") : 0); -        clen += G_RENDERING_LINE(line)->max_bin_len; +        clen += *max_bin_len;          content = (char *)realloc(content, (len + clen) * sizeof(char)); @@ -187,9 +191,9 @@ void g_comment_line_refresh_markup(GCommentLine *line)              len += strlen("\t");          } -        memset(&content[len - 1], G_RENDERING_LINE(line)->type == RLT_PROTOTYPE ? '-' : ' ', -               G_RENDERING_LINE(line)->max_bin_len); -        len += G_RENDERING_LINE(line)->max_bin_len; +        memset(&content[len - 1], +               G_RENDERING_LINE(line)->type == RLT_PROTOTYPE ? '-' : ' ', *max_bin_len); +        len += *max_bin_len;          content[len - 1] = '\0'; @@ -221,7 +225,7 @@ void g_comment_line_refresh_markup(GCommentLine *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); diff --git a/src/analysis/line_prologue.c b/src/analysis/line_prologue.c index 74b5642..16876af 100644 --- a/src/analysis/line_prologue.c +++ b/src/analysis/line_prologue.c @@ -57,7 +57,7 @@ static void g_prologue_line_class_init(GPrologueLineClass *);  static void g_prologue_line_init(GPrologueLine *);  /* Met à jour la ligne de représentation de prologue. */ -void g_prologue_line_refresh_markup(GPrologueLine *); +void g_prologue_line_refresh_markup(GPrologueLine *, LinesMainOwner); @@ -113,7 +113,8 @@ static void g_prologue_line_init(GPrologueLine *line)  /******************************************************************************  *                                                                             * -*  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 prologue.           *  *                                                                             * @@ -123,7 +124,7 @@ static void g_prologue_line_init(GPrologueLine *line)  *                                                                             *  ******************************************************************************/ -void g_prologue_line_refresh_markup(GPrologueLine *line) +void g_prologue_line_refresh_markup(GPrologueLine *line, LinesMainOwner owner)  {      size_t len;                             /* Taille du contenu           */      char *content;                          /* Contenu réellement imprimé  */ @@ -136,7 +137,7 @@ void g_prologue_line_refresh_markup(GPrologueLine *line)      snprintf(content, len + 1, "<b><span foreground='#003300'>; %s</span></b>", line->comment); -    pango_layout_set_markup(G_RENDERING_LINE(line)->layout, content, len); +    pango_layout_set_markup(G_RENDERING_LINE(line)->layout[owner], content, len);      free(content); diff --git a/src/gtkext/gtkblockview.c b/src/gtkext/gtkblockview.c index cfd4ee0..f0ee0dd 100644 --- a/src/gtkext/gtkblockview.c +++ b/src/gtkext/gtkblockview.c @@ -41,6 +41,8 @@ struct _GtkBlockView  {      GtkBinView parent;                      /* A laisser en premier        */ +    LinesMainOwner owner;                   /* Support final des lignes    */ +      bool show_vaddress;                     /* Affichage des adresses ?    */      bool show_code;                         /* Affichage du code brut ?    */ @@ -114,17 +116,30 @@ static void gtk_block_view_destroy(GtkObject *object); +/* Détermine le type du composant d'affichage en block. */  G_DEFINE_TYPE(GtkBlockView, gtk_block_view, GTK_TYPE_BIN_VIEW) +/****************************************************************************** +*                                                                             * +*  Paramètres  : owner = support effectif des lignes au final.                * +*                                                                             * +*  Description : Crée un nouveau composant pour l'affichage en block.         * +*                                                                             * +*  Retour      : Composant GTK créé.                                          * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ - -GtkWidget * gtk_block_view_new(void) +GtkWidget * gtk_block_view_new(LinesMainOwner owner)  {      GtkBlockView *result;      result = gtk_type_new(gtk_block_view_get_type()); +    result->owner = owner; +      return GTK_WIDGET(result);  } @@ -387,7 +402,7 @@ gtk_block_view_paint(GtkBlockView *view)      {          g_rendering_line_draw(iter, GDK_DRAWABLE(widget->window), GTK_BIN_VIEW(view)->gc,                                MARGIN_SPACE, 2 * MARGIN_SPACE + view->line_height, -                              y, view->line_height); +                              y, view->line_height, view->owner);          y += view->line_height; @@ -513,7 +528,8 @@ static void gtk_block_view_set_rendering_lines(GtkBlockView *view, GRenderingLin                           G_CALLBACK(gtk_block_view_update_margin), view);      } -    g_rendering_line_update_bin_len(GTK_BIN_VIEW(view)->lines, GTK_BIN_VIEW(view)->last); +    g_rendering_line_update_bin_len(GTK_BIN_VIEW(view)->lines, +                                    GTK_BIN_VIEW(view)->last, view->owner);      gtk_block_view_recompute_size_request(view); @@ -540,7 +556,9 @@ void gtk_block_view_recompute_size_request(GtkBlockView *view)      int width;                              /* Largeur de l'objet actuelle */      int height;                             /* Hauteur de l'objet actuelle */ -    g_rendering_line_get_size(GTK_BIN_VIEW(view)->lines, GTK_BIN_VIEW(view)->last, +    g_rendering_line_get_size(GTK_BIN_VIEW(view)->lines, +                              GTK_BIN_VIEW(view)->last, +                              view->owner,                                &width, &height, &view->line_height);      gtk_widget_set_size_request(GTK_WIDGET(view), diff --git a/src/gtkext/gtkblockview.h b/src/gtkext/gtkblockview.h index d56ed95..43561b1 100644 --- a/src/gtkext/gtkblockview.h +++ b/src/gtkext/gtkblockview.h @@ -51,11 +51,11 @@ typedef struct _GtkBlockViewClass GtkBlockViewClass; -/* Détermine le type du composant d'affichage en blockique. */ +/* Détermine le type du composant d'affichage en block. */  GType gtk_block_view_get_type(void); -/* Crée un nouveau composant pour l'affichage en blockique. */ -GtkWidget *gtk_block_view_new(void); +/* Crée un nouveau composant pour l'affichage en block. */ +GtkWidget *gtk_block_view_new(LinesMainOwner); diff --git a/src/gtkext/gtkgraphview.c b/src/gtkext/gtkgraphview.c index d060f69..03693d5 100644 --- a/src/gtkext/gtkgraphview.c +++ b/src/gtkext/gtkgraphview.c @@ -241,7 +241,7 @@ static void gtk_graph_view_set_rendering_lines(GtkGraphView *view, GRenderingLin      view->childs = (GtkBinView **)calloc(2, sizeof(GtkBinView *));      view->childs_count = 2; -    view->childs[0] = GTK_BIN_VIEW(gtk_block_view_new()); +    view->childs[0] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));      gtk_widget_show(GTK_WIDGET(view->childs[0]));      gtk_fixed_put(GTK_FIXED(view), GTK_WIDGET(view->childs[0]), 50, 50); @@ -256,7 +256,7 @@ static void gtk_graph_view_set_rendering_lines(GtkGraphView *view, GRenderingLin      printf("mainl : %p\n", mainl); -    view->childs[1] = GTK_BIN_VIEW(gtk_block_view_new()); +    view->childs[1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));      gtk_widget_show(GTK_WIDGET(view->childs[1]));      gtk_fixed_put(GTK_FIXED(view), GTK_WIDGET(view->childs[1]), 100, 450); @@ -405,7 +405,7 @@ static GtkBinView **gtk_graph_view_load_nodes(openida_binary *binary, GRendering          {              result = (GtkBinView **)realloc(result, ++(*count) * sizeof(GtkBinView *)); -            result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new()); +            result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));              gtk_widget_show(GTK_WIDGET(result[*count - 1]));              gtk_bin_view_show_border(result[*count - 1], true); @@ -422,7 +422,7 @@ static GtkBinView **gtk_graph_view_load_nodes(openida_binary *binary, GRendering          {              result = (GtkBinView **)realloc(result, ++(*count) * sizeof(GtkBinView *)); -            result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new()); +            result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));              gtk_widget_show(GTK_WIDGET(result[*count - 1]));              gtk_bin_view_show_border(result[*count - 1], true); @@ -438,7 +438,7 @@ static GtkBinView **gtk_graph_view_load_nodes(openida_binary *binary, GRendering      {          result = (GtkBinView **)realloc(result, ++(*count) * sizeof(GtkBinView *)); -        result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new()); +        result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));          gtk_widget_show(GTK_WIDGET(result[*count - 1]));          gtk_bin_view_show_border(result[*count - 1], true); diff --git a/src/project.c b/src/project.c index 0e6f0a7..d1b7225 100644 --- a/src/project.c +++ b/src/project.c @@ -108,7 +108,7 @@ loaded_binary *load_openida_binary(openida_binary *binary)          {              default: /* GCC ! */              case BVW_BLOCK: -                view = gtk_block_view_new(); +                view = gtk_block_view_new(LMO_BLOCK);                  break;              case BVW_GRAPH:                  view = gtk_graph_view_new(); | 
