mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-09 10:46:02 +02:00
Update loadExtensionsSynchronized to handle issue with setting the 'loaded' flag too early
This commit is contained in:
parent
f91558ee2f
commit
c8b246f974
1 changed files with 8 additions and 1 deletions
|
@ -138,6 +138,7 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
|
||||||
private static final PluginVersionIdentifier buildInfoVersion = new PluginVersionIdentifier(3, 0, 0);
|
private static final PluginVersionIdentifier buildInfoVersion = new PluginVersionIdentifier(3, 0, 0);
|
||||||
private static Map depCalculatorsMap;
|
private static Map depCalculatorsMap;
|
||||||
private static boolean projectTypesLoaded = false;
|
private static boolean projectTypesLoaded = false;
|
||||||
|
private static boolean projectTypesLoading = false;
|
||||||
// Project types defined in the manifest files
|
// Project types defined in the manifest files
|
||||||
public static SortedMap projectTypeMap;
|
public static SortedMap projectTypeMap;
|
||||||
private static List projectTypes;
|
private static List projectTypes;
|
||||||
|
@ -1763,7 +1764,11 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
|
||||||
// Do this once
|
// Do this once
|
||||||
if (projectTypesLoaded)
|
if (projectTypesLoaded)
|
||||||
return;
|
return;
|
||||||
projectTypesLoaded = true;
|
|
||||||
|
// This routine gets called recursively. If so, just return
|
||||||
|
if (projectTypesLoading)
|
||||||
|
return;
|
||||||
|
projectTypesLoading = true;
|
||||||
|
|
||||||
// Get the extensions that use the current CDT managed build model
|
// Get the extensions that use the current CDT managed build model
|
||||||
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT_ID);
|
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT_ID);
|
||||||
|
@ -2031,6 +2036,8 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
|
||||||
}
|
}
|
||||||
|
|
||||||
performAdjustments();
|
performAdjustments();
|
||||||
|
projectTypesLoading = false;
|
||||||
|
projectTypesLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void performAdjustments(){
|
private static void performAdjustments(){
|
||||||
|
|
Loading…
Add table
Reference in a new issue