[gitg] lines-renderer: use a list instead of a map



commit 59c2de304443552b40d1a01f3fd04dbd8452b2a7
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Sun Dec 20 12:24:43 2015 +0100

    lines-renderer: use a list instead of a map
    
    The map was actually useless here since were were iterating either
    the values or the keys

 libgitg/gitg-diff-view-lines-renderer.vala |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/libgitg/gitg-diff-view-lines-renderer.vala b/libgitg/gitg-diff-view-lines-renderer.vala
index fcec858..bc23e7b 100644
--- a/libgitg/gitg-diff-view-lines-renderer.vala
+++ b/libgitg/gitg-diff-view-lines-renderer.vala
@@ -35,10 +35,11 @@ class Gitg.DiffViewLinesRenderer : Gtk.SourceGutterRendererText
        {
                int start;
                int end;
+               Ggit.DiffHunk hunk;
                string[] line_infos;
        }
 
-       private Gee.HashMap<Ggit.DiffHunk, HunkInfo?> d_hunks_map;
+       private Gee.ArrayList<HunkInfo?> d_hunks_list;
 
        public Style style
        {
@@ -69,7 +70,7 @@ class Gitg.DiffViewLinesRenderer : Gtk.SourceGutterRendererText
 
        construct
        {
-               d_hunks_map = new Gee.HashMap<Ggit.DiffHunk, HunkInfo?>();
+               d_hunks_list = new Gee.ArrayList<HunkInfo?>();
 
                set_alignment(1.0f, 0.5f);
                calculate_num_digits();
@@ -85,7 +86,7 @@ class Gitg.DiffViewLinesRenderer : Gtk.SourceGutterRendererText
                var line = start.get_line();
                HunkInfo? info = null;
 
-               foreach (var i in d_hunks_map.values)
+               foreach (var i in d_hunks_list)
                {
                        if (line >= i.start && line <= i.end)
                        {
@@ -143,10 +144,10 @@ class Gitg.DiffViewLinesRenderer : Gtk.SourceGutterRendererText
 
                if (style == Style.OLD || style == Style.NEW)
                {
-                       foreach (var hunk in d_hunks_map.keys)
+                       foreach (var info in d_hunks_list)
                        {
-                               var oldn = hunk.get_old_start() + hunk.get_old_lines();
-                               var newn = hunk.get_new_start() + hunk.get_new_lines();
+                               var oldn = info.hunk.get_old_start() + info.hunk.get_old_lines();
+                               var newn = info.hunk.get_new_start() + info.hunk.get_new_lines();
 
                                var num = int.max(int.max(oldn, newn), d_maxlines);
 
@@ -257,9 +258,10 @@ class Gitg.DiffViewLinesRenderer : Gtk.SourceGutterRendererText
 
                info.start = buffer_line_start;
                info.end = buffer_line_end;
+               info.hunk = hunk;
                info.line_infos = precalculate_line_strings(hunk, lines);
 
-               d_hunks_map[hunk] = info;
+               d_hunks_list.add(info);
 
                recalculate_size();
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]