diff options
| author | Robert Speicher <robert@gitlab.com> | 2017-12-22 18:04:27 +0000 |
|---|---|---|
| committer | Robert Speicher <robert@gitlab.com> | 2017-12-22 18:04:27 +0000 |
| commit | 255e64ef61b7f1555db1230d099095642e1dcc46 (patch) | |
| tree | 37677c9c31f72a9e0f11589446940ba8ef7411da /lib | |
| parent | 8a488a02ce9cf6ea6cbddbb57991548e35cb3a0c (diff) | |
| parent | 771bf9527ffd5fd8fe258381593f686d5d960a42 (diff) | |
| download | gitlab-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.rb | 4 |
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) |
