summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2017-12-22 18:04:27 +0000
committerRobert Speicher <robert@gitlab.com>2017-12-22 18:04:27 +0000
commit255e64ef61b7f1555db1230d099095642e1dcc46 (patch)
tree37677c9c31f72a9e0f11589446940ba8ef7411da /lib
parent8a488a02ce9cf6ea6cbddbb57991548e35cb3a0c (diff)
parent771bf9527ffd5fd8fe258381593f686d5d960a42 (diff)
downloadgitlab-ce-255e64ef61b7f1555db1230d099095642e1dcc46.tar.gz
Merge branch 'dm-diff-note-for-line-performance' into 'master'
Improve performance of DiffDiscussion#truncated_diff_lines and DiffNote#diff_line by removing expensive diff position calculation and comparison Closes #41406 See merge request gitlab-org/gitlab-ce!16111
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/diff/file.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/gitlab/diff/file.rb b/lib/gitlab/diff/file.rb
index d0cfe2386ca..cd490aaa291 100644
--- a/lib/gitlab/diff/file.rb
+++ b/lib/gitlab/diff/file.rb
@@ -61,7 +61,9 @@ module Gitlab
end
def line_for_position(pos)
- diff_lines.find { |line| position(line) == pos }
+ return nil unless pos.position_type == 'text'
+
+ diff_lines.find { |line| line.old_line == pos.old_line && line.new_line == pos.new_line }
end
def position_for_line_code(code)