1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 17:05:26 +02:00

Bug 123997: launching subclasses of AbstractCLaunchDelegate causes progress information to be lost. Applied patch from Andrew Ferguson (andrew.ferguson@arm.com).

This commit is contained in:
Mikhail Khodjaiants 2006-01-30 21:30:54 +00:00
parent a8d7b7028c
commit 3513e5a634
2 changed files with 35 additions and 34 deletions

View file

@ -1,3 +1,8 @@
2006-01-30 Mikhail Khodjaiants
Bug 123997: launching subclasses of AbstractCLaunchDelegate causes progress information to be lost.
Applied patch from Andrew Ferguson (andrew.ferguson@arm.com).
* AbstractCLaunchDelegate.java
2006-01-29 Mikhail Khodjaiants
Bug 118894: Allow stopping at other locations other than main().
Applied patch from Ken Ryall (Nokia).

View file

@ -7,6 +7,7 @@
*
* Contributors:
* QNX Software Systems - initial API and implementation
* Andrew Ferguson (andrew.ferguson@arm.com) - bug 123997
*******************************************************************************/
package org.eclipse.cdt.launch;
@ -640,44 +641,39 @@ abstract public class AbstractCLaunchDelegate extends LaunchConfigurationDelegat
* if an exception occurs while checking for compile errors.
*/
public boolean finalLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
try {
boolean continueLaunch = true;
if (orderedProjects != null) {
monitor.beginTask(LaunchMessages.getString("AbstractCLaunchDelegate.searching_for_errors"), //$NON-NLS-1$
orderedProjects.size() + 1);
boolean compileErrorsInProjs = false;
//check prerequisite projects for compile errors.
for (Iterator i = orderedProjects.iterator(); i.hasNext();) {
IProject proj = (IProject)i.next();
monitor.subTask(LaunchMessages.getString("AbstractCLaunchDelegate.searching_for_errors_in") //$NON-NLS-1$
+ proj.getName());
compileErrorsInProjs = existsErrors(proj);
if (compileErrorsInProjs) {
break;
}
}
//check current project, if prerequite projects were ok
if (!compileErrorsInProjs) {
monitor.subTask(LaunchMessages.getString("AbstractCLaunchDelegate.searching_for_errors_in") //$NON-NLS-1$
+ project.getName());
compileErrorsInProjs = existsErrors(project);
}
//if compile errors exist, ask the user before continuing.
boolean continueLaunch = true;
if (orderedProjects != null) {
monitor.subTask(LaunchMessages.getString("AbstractCLaunchDelegate.searching_for_errors")); //$NON-NLS-1$
boolean compileErrorsInProjs = false;
//check prerequisite projects for compile errors.
for (Iterator i = orderedProjects.iterator(); i.hasNext();) {
IProject proj = (IProject)i.next();
monitor.subTask(LaunchMessages.getString("AbstractCLaunchDelegate.searching_for_errors_in") //$NON-NLS-1$
+ proj.getName());
compileErrorsInProjs = existsErrors(proj);
if (compileErrorsInProjs) {
IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(promptStatus);
if (prompter != null) {
continueLaunch = ((Boolean)prompter.handleStatus(complileErrorPromptStatus, null)).booleanValue();
}
break;
}
}
//check current project, if prerequite projects were ok
if (!compileErrorsInProjs) {
monitor.subTask(LaunchMessages.getString("AbstractCLaunchDelegate.searching_for_errors_in") //$NON-NLS-1$
+ project.getName());
compileErrorsInProjs = existsErrors(project);
}
//if compile errors exist, ask the user before continuing.
if (compileErrorsInProjs) {
IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(promptStatus);
if (prompter != null) {
continueLaunch = ((Boolean)prompter.handleStatus(complileErrorPromptStatus, null)).booleanValue();
}
}
return continueLaunch;
} finally {
monitor.done();
}
return continueLaunch;
}
/**