1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix for PR 91442: [Scanner Config] Saving per file DSC for Mozilla project chokes the system.

When there is new per file scanner info for number of files in a project, the project is refreshed only once (no recursive processing of change delta).
This commit is contained in:
Vladimir Hirsl 2005-05-11 20:07:41 +00:00
parent 28b56b0e88
commit fb26e4691f
5 changed files with 14 additions and 7 deletions

View file

@ -29,7 +29,6 @@ import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigScope;
import org.eclipse.cdt.make.internal.core.MakeMessages;
import org.eclipse.cdt.make.internal.core.scannerconfig2.SCProfileInstance;
import org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
@ -171,9 +170,11 @@ public class DiscoveredPathManager implements IDiscoveredPathManager, IResourceC
if (changedResources != null) {
List changeDelta = new ArrayList(changedResources.size());
for (Iterator i = changedResources.iterator(); i.hasNext(); ) {
IFile file = (IFile) i.next();
IPath path = file.getFullPath();
changeDelta.add(new PathEntryContainerChanged(path, 3)); // both include paths and symbols changed
IResource resource = (IResource) i.next();
IPath path = resource.getFullPath();
changeDelta.add(new PathEntryContainerChanged(path,
PathEntryContainerChanged.INCLUDE_CHANGED |
PathEntryContainerChanged.MACRO_CHANGED)); // both include paths and symbols changed
}
CoreModel.pathEntryContainerUpdates(container,
(PathEntryContainerChanged[]) changeDelta.toArray(new PathEntryContainerChanged[changeDelta.size()]),

View file

@ -201,7 +201,9 @@ public class PerProjectSICollector implements IScannerInfoCollector2, IScannerIn
monitor.subTask(MakeMessages.getString("ScannerInfoCollector.Updating") + project.getName()); //$NON-NLS-1$
try {
// update scanner configuration
MakeCorePlugin.getDefault().getDiscoveryManager().updateDiscoveredInfo(pathInfo, null);
List resourceDelta = new ArrayList(1);
resourceDelta.add(project);
MakeCorePlugin.getDefault().getDiscoveryManager().updateDiscoveredInfo(pathInfo, resourceDelta);
monitor.worked(50);
} catch (CoreException e) {
MakeCorePlugin.log(e);

View file

@ -208,7 +208,9 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
try {
// update scanner configuration
MakeCorePlugin.getDefault().getDiscoveryManager().updateDiscoveredInfo(info, null);
List resourceDelta = new ArrayList(1);
resourceDelta.add(fCProject.getProject());
MakeCorePlugin.getDefault().getDiscoveryManager().updateDiscoveredInfo(info, resourceDelta);
return true;
} catch (CoreException e) {
MakeCorePlugin.log(e);

View file

@ -333,7 +333,8 @@ public class DiscoveryOptionsBlock extends AbstractDiscoveryOptionsBlock {
ScannerConfigScope profileScope = ScannerConfigProfileManager.getInstance().
getSCProfileConfiguration(profileId).getProfileScope();
List changedResources = new ArrayList();
changedResources.add(project.getFullPath());
// changedResources.add(project.getFullPath());
changedResources.add(project);
MakeCorePlugin.getDefault().getDiscoveryManager().changeDiscoveredContainer(
project, profileScope, changedResources);
}

View file

@ -192,6 +192,7 @@ public class CElementContentProvider extends BaseCElementContentProvider impleme
if (isPathEntryChange(delta)) {
// throw the towel and do a full refresh of the affected C project.
postRefresh(element.getCProject());
return;// bailout
}
if (delta.getResourceDeltas() != null) {