From 922acdbcc22420b43a3c3f291beb12efe2705fa6 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 12 May 2013 08:45:40 +0000 Subject: [PATCH] Check inclusion only once (#14015). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11832 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index 82c0f2e63..8dfa2b53a 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -904,13 +904,15 @@ class Issue < ActiveRecord::Base # the children of the current node need to be processed. if current_issue.children && (current_issue_status == ePROCESS_CHILDREN_ONLY || current_issue_status == ePROCESS_ALL) current_issue.children.each do |child| - if (issue_status[child] == eNOT_DISCOVERED) && !except.include?(child) + next if except.include?(child) + + if (issue_status[child] == eNOT_DISCOVERED) queue << child issue_status[child] = ePROCESS_ALL - elsif (issue_status[child] == eRELATIONS_PROCESSED) && !except.include?(child) + elsif (issue_status[child] == eRELATIONS_PROCESSED) queue << child issue_status[child] = ePROCESS_CHILDREN_ONLY - elsif (issue_status[child] == ePROCESS_RELATIONS_ONLY) && !except.include?(child) + elsif (issue_status[child] == ePROCESS_RELATIONS_ONLY) queue << child issue_status[child] = ePROCESS_ALL end @@ -919,13 +921,15 @@ class Issue < ActiveRecord::Base # Add related issues to the queue, if they are not already in it. current_issue.relations_from.map(&:issue_to).each do |related_issue| - if (issue_status[related_issue] == eNOT_DISCOVERED) && !except.include?(related_issue) + next if except.include?(related_issue) + + if (issue_status[related_issue] == eNOT_DISCOVERED) queue << related_issue issue_status[related_issue] = ePROCESS_ALL - elsif (issue_status[related_issue] == eRELATIONS_PROCESSED) && !except.include?(related_issue) + elsif (issue_status[related_issue] == eRELATIONS_PROCESSED) queue << related_issue issue_status[related_issue] = ePROCESS_CHILDREN_ONLY - elsif (issue_status[related_issue] == ePROCESS_RELATIONS_ONLY) && !except.include?(related_issue) + elsif (issue_status[related_issue] == ePROCESS_RELATIONS_ONLY) queue << related_issue issue_status[related_issue] = ePROCESS_ALL end -- 2.39.5