1
0
Fork 0
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:
Doug Schaefer 2016-11-21 11:45:09 -05:00
parent 4bada0e6ab
commit 303bd3aaa7

View file

@ -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) {