mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 14:15:23 +02:00
Fix NPE on last descriptor delete. Refactor supportsTarget code.
Change-Id: I51ed0640a187428416e6d10785b0efc22af764be
This commit is contained in:
parent
4bada0e6ab
commit
303bd3aaa7
1 changed files with 24 additions and 27 deletions
|
@ -97,21 +97,13 @@ public class LaunchBarControl implements ILaunchBarListener {
|
|||
configSelector.setInput(manager);
|
||||
|
||||
boolean supportsTargets;
|
||||
if (store.getBoolean(Activator.PREF_ALWAYS_TARGETSELECTOR)) {
|
||||
try {
|
||||
supportsTargets = supportsTargets(manager.getActiveLaunchDescriptor());
|
||||
} catch (CoreException e) {
|
||||
Activator.log(e);
|
||||
supportsTargets = true;
|
||||
} else {
|
||||
try {
|
||||
ILaunchDescriptor desc = manager.getActiveLaunchDescriptor();
|
||||
if (desc != null) {
|
||||
supportsTargets = desc.getType().supportsTargets();
|
||||
} else {
|
||||
supportsTargets = true;
|
||||
}
|
||||
} catch (CoreException e) {
|
||||
Activator.log(e);
|
||||
supportsTargets = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (supportsTargets) {
|
||||
createTargetSelector();
|
||||
}
|
||||
|
@ -191,20 +183,7 @@ public class LaunchBarControl implements ILaunchBarListener {
|
|||
configSelector.setDelayedSelection(descriptor, SELECTION_DELAY);
|
||||
}
|
||||
|
||||
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
|
||||
boolean supportsTargets;
|
||||
if (store.getBoolean(Activator.PREF_ALWAYS_TARGETSELECTOR)) {
|
||||
supportsTargets = true;
|
||||
} else {
|
||||
try {
|
||||
supportsTargets = descriptor.getType().supportsTargets();
|
||||
} catch (CoreException e) {
|
||||
supportsTargets = true;
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
if (supportsTargets) {
|
||||
if (supportsTargets(descriptor)) {
|
||||
if (targetSelector == null || targetSelector.isDisposed()) {
|
||||
createTargetSelector();
|
||||
syncSelectors();
|
||||
|
@ -220,6 +199,24 @@ public class LaunchBarControl implements ILaunchBarListener {
|
|||
});
|
||||
}
|
||||
|
||||
private boolean supportsTargets(ILaunchDescriptor descriptor) {
|
||||
if (descriptor == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
|
||||
if (store.getBoolean(Activator.PREF_ALWAYS_TARGETSELECTOR)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
try {
|
||||
return descriptor.getType().supportsTargets();
|
||||
} catch (CoreException e) {
|
||||
Activator.log(e);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void activeLaunchModeChanged(ILaunchMode mode) {
|
||||
if (modeSelector != null) {
|
||||
|
|
Loading…
Add table
Reference in a new issue