diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-12-22 12:49:56 +0100 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-12-22 18:07:15 +0100 |
commit | 771bf9527ffd5fd8fe258381593f686d5d960a42 (patch) | |
tree | e15ff12e3419aa751e3d54e6af7823a88f7be930 /app/models/concerns | |
parent | 92e15071c13f65cf7250315f1a138284880b0074 (diff) | |
download | gitlab-ce-771bf9527ffd5fd8fe258381593f686d5d960a42.tar.gz |
Improve performance of DiffDiscussion#truncated_diff_lines and DiffNote#diff_line by removing expensive diff position calculation and comparison
Diffstat (limited to 'app/models/concerns')
-rw-r--r-- | app/models/concerns/discussion_on_diff.rb | 10 | ||||
-rw-r--r-- | app/models/concerns/note_on_diff.rb | 4 |
2 files changed, 4 insertions, 10 deletions
diff --git a/app/models/concerns/discussion_on_diff.rb b/app/models/concerns/discussion_on_diff.rb index 4b4d519f3df..db9770fabf4 100644 --- a/app/models/concerns/discussion_on_diff.rb +++ b/app/models/concerns/discussion_on_diff.rb @@ -9,7 +9,6 @@ module DiscussionOnDiff :original_line_code, :diff_file, :diff_line, - :for_line?, :active?, :created_at_diff?, @@ -39,17 +38,16 @@ module DiscussionOnDiff # Returns an array of at most 16 highlighted lines above a diff note def truncated_diff_lines(highlight: true) lines = highlight ? highlighted_diff_lines : diff_lines + + initial_line_index = [diff_line.index - NUMBER_OF_TRUNCATED_DIFF_LINES + 1, 0].max + prev_lines = [] - lines.each do |line| + lines[initial_line_index..diff_line.index].each do |line| if line.meta? prev_lines.clear else prev_lines << line - - break if for_line?(line) - - prev_lines.shift if prev_lines.length >= NUMBER_OF_TRUNCATED_DIFF_LINES end end diff --git a/app/models/concerns/note_on_diff.rb b/app/models/concerns/note_on_diff.rb index f734952fa6c..510b8868462 100644 --- a/app/models/concerns/note_on_diff.rb +++ b/app/models/concerns/note_on_diff.rb @@ -14,10 +14,6 @@ module NoteOnDiff raise NotImplementedError end - def for_line?(line) - raise NotImplementedError - end - def original_line_code raise NotImplementedError end |