From f414177e351c7dcd394c0c186d1aa75c6a7dfa1a Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Fri, 26 May 2006 21:14:19 +0000 Subject: [PATCH] Bug 137138: Common source containers get disposed. --- debug/org.eclipse.cdt.debug.core/ChangeLog | 5 +++++ .../core/sourcelookup/CSourceLookupParticipant.java | 2 +- .../core/sourcelookup/CSourcePathComputerDelegate.java | 9 +++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index aafa125fef3..2f84a10f864 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,8 @@ +2006-05-26 Mikhail Khodjaiants + Bug 137138: Common source containers get disposed. + * CSourceLookupParticipant.java + * CSourcePathComputerDelegate.java + 2006-05-26 Mikhail Khodjaiants Bug 122010: Registers View is displayed even if supportsRegisters and supportsRegisterModification are disabled. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java index 9511e876727..5ede0d7603d 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java @@ -28,7 +28,7 @@ import org.eclipse.debug.core.sourcelookup.containers.LocalFileStorage; */ public class CSourceLookupParticipant extends AbstractSourceLookupParticipant { - static private class NoSourceElement { + static class NoSourceElement { } private static final NoSourceElement gfNoSource = new NoSourceElement(); diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourcePathComputerDelegate.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourcePathComputerDelegate.java index 208bd651d03..d6baaae178a 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourcePathComputerDelegate.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourcePathComputerDelegate.java @@ -11,9 +11,9 @@ package org.eclipse.cdt.debug.internal.core.sourcelookup; import java.util.ArrayList; -import java.util.Arrays; import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; +import org.eclipse.cdt.debug.core.sourcelookup.MappingSourceContainer; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; @@ -41,7 +41,12 @@ public class CSourcePathComputerDelegate implements ISourcePathComputerDelegate public ISourceContainer[] computeSourceContainers( ILaunchConfiguration configuration, IProgressMonitor monitor ) throws CoreException { ISourceContainer[] common = CDebugCorePlugin.getDefault().getCommonSourceLookupDirector().getSourceContainers(); ArrayList containers = new ArrayList( common.length + 1 ); - containers.addAll( Arrays.asList( common ) ); + for ( int i = 0; i < common.length; ++i ) { + ISourceContainer sc = common[i]; + if ( sc.getType().getId().equals( MappingSourceContainer.TYPE_ID ) ) + sc = ((MappingSourceContainer)sc).copy(); + containers.add( sc ); + } String projectName = configuration.getAttribute( ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, (String)null ); if ( projectName != null ) { IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject( projectName );