From 63b1a31bb5b8bc927f0c2849d1e61c616184bb76 Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Fri, 4 Mar 2011 23:25:33 +0000 Subject: [PATCH] Bug 338467 - Codan calls "before" and "after" even for checkers that are not supposed to run in a launch mode. Patch by Alex Ruiz. --- .../cdt/codan/internal/core/CodanBuilder.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanBuilder.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanBuilder.java index bb2a91b870b..4abb28954ad 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanBuilder.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/internal/core/CodanBuilder.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2010 Alena Laskavaia + * Copyright (c) 2009, 2011 Alena Laskavaia * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -129,16 +129,16 @@ public class CodanBuilder extends IncrementalProjectBuilder implements ICodanBui try { if (monitor.isCanceled()) return; - if (checker.enabledInContext(resource) && chegistry.isCheckerEnabledForLaunchMode(checker, resource, checkerLaunchMode)) { + if (doesCheckerSupportLaunchMode(checker, checkerLaunchMode) + && checker.enabledInContext(resource) + && chegistry.isCheckerEnabledForLaunchMode(checker, resource, checkerLaunchMode)) { synchronized (checker) { try { checker.before(resource); if (chegistry.isCheckerEnabled(checker, resource)) { //long time = System.currentTimeMillis(); if (checkerLaunchMode == CheckerLaunchMode.RUN_AS_YOU_TYPE) { - if (checker.runInEditor() && checker instanceof IRunnableInEditorChecker) { - ((IRunnableInEditorChecker) checker).processModel(model); - } + ((IRunnableInEditorChecker) checker).processModel(model); } else { checker.processResource(resource); } @@ -178,12 +178,9 @@ public class CodanBuilder extends IncrementalProjectBuilder implements ICodanBui } } - /** - * @param checker - * @return - */ - private boolean isEnabledForLaunchMode(IChecker checker) { - // TODO Auto-generated method stub + private boolean doesCheckerSupportLaunchMode(IChecker checker, CheckerLaunchMode mode) { + if (mode == CheckerLaunchMode.RUN_AS_YOU_TYPE) + return checker.runInEditor() && checker instanceof IRunnableInEditorChecker; return true; }