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

Tentative fix for PR 57128

This commit is contained in:
Alain Magloire 2004-04-05 19:17:24 +00:00
parent 024eca4958
commit e03a6c0446
7 changed files with 61 additions and 6 deletions

View file

@ -1,3 +1,17 @@
2004-04-05 Alain Magloire
Changing the sequence when we shutdown, this will
help in PR #57128
In BaseCElementContentProvider do not call
BinaryContainer.getBinaries() directly it is a blocking
operation.
* src/org/eclipse/cdt/ui/CUIPlugin.java
* browser/org/eclipse/cdt/ui/browser/typeinfo/AllTypesCache.java
* src/org/eclipse/cdt/internal/ui/BaseCElementCElementContentProvider.java
* src/org/eclipse/cdt/internal/ui/CElementImageProvider.java
* src/org/eclipse/cdt/internal/ui/CPluginImages.java
2004-04-05 Hoda Amer 2004-04-05 Hoda Amer
Fix for bug#44378 : Content Assist: easy keyboard exit of argument-providing mode Fix for bug#44378 : Content Assist: easy keyboard exit of argument-providing mode
Fix for bug#56614 : [Content Assist] Global variables do not appear in a global completion list. Fix for bug#56614 : [Content Assist] Global variables do not appear in a global completion list.

View file

@ -164,6 +164,10 @@ public class AllTypesCache {
TypeSearchResultCollector collector= new TypeSearchResultCollector(subMonitor); TypeSearchResultCollector collector= new TypeSearchResultCollector(subMonitor);
IWorkspace workspace= CCorePlugin.getWorkspace(); IWorkspace workspace= CCorePlugin.getWorkspace();
if (workspace == null) {
return Status.CANCEL_STATUS;
}
ICSearchScope scope= SearchEngine.createWorkspaceScope(); ICSearchScope scope= SearchEngine.createWorkspaceScope();
SearchEngine engine= new SearchEngine(); SearchEngine engine= new SearchEngine();
@ -171,6 +175,8 @@ public class AllTypesCache {
try { try {
flushCache(); flushCache();
// start the search engine // start the search engine
if (progressMonitor.isCanceled())
throw new InterruptedException();
engine.search(workspace, pattern, scope, collector, true); engine.search(workspace, pattern, scope, collector, true);
if (progressMonitor.isCanceled()) if (progressMonitor.isCanceled())
throw new InterruptedException(); throw new InterruptedException();

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

View file

@ -186,8 +186,8 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
if (element instanceof IBinaryContainer) { if (element instanceof IBinaryContainer) {
IBinaryContainer cont = (IBinaryContainer)element; IBinaryContainer cont = (IBinaryContainer)element;
IBinary[] bin = cont.getBinaries(); IBinary[] bins = getExecutables(cont);
return (bin != null) && bin.length > 0; return (bins != null) && bins.length > 0;
} }
if (element instanceof IParent) { if (element instanceof IParent) {
@ -329,8 +329,8 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
} }
private Object[] filterNonCResources(Object[] objects, ICProject cproject) { private Object[] filterNonCResources(Object[] objects, ICProject cproject) {
ICElement[] binaries = cproject.getBinaryContainer().getChildren(); ICElement[] binaries = getExecutables(cproject);
ICElement[] archives = cproject.getArchiveContainer().getChildren(); ICElement[] archives = getArchives(cproject);
ISourceRoot[] roots = null; ISourceRoot[] roots = null;
try { try {
roots = cproject.getSourceRoots(); roots = cproject.getSourceRoots();
@ -406,6 +406,35 @@ public class BaseCElementContentProvider implements ITreeContentProvider {
return true; return true;
} }
protected IBinary[] getExecutables(ICProject cproject) {
IBinaryContainer container = cproject.getBinaryContainer();
return getExecutables(container);
}
protected IBinary[] getExecutables(IBinaryContainer container) {
ICElement[] celements = container.getChildren();
ArrayList list = new ArrayList(celements.length);
for (int i = 0; i < celements.length; i++) {
if (celements[i] instanceof IBinary) {
IBinary bin = (IBinary)celements[i];
if (bin.isExecutable()) {
list.add(bin);
}
}
}
IBinary[] bins = new IBinary[list.size()];
list.toArray(bins);
return bins;
}
protected IArchive[] getArchives(ICProject cproject) {
IArchiveContainer container = cproject.getArchiveContainer();
return getArchives(container);
}
protected IArchive[] getArchives(IArchiveContainer container) {
return container.getArchives();
}
/** /**
* Note: This method is for internal use only. Clients should not call this method. * Note: This method is for internal use only. Clients should not call this method.

View file

@ -13,6 +13,7 @@ import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IDeclaration; import org.eclipse.cdt.core.model.IDeclaration;
import org.eclipse.cdt.core.model.IField; import org.eclipse.cdt.core.model.IField;
import org.eclipse.cdt.core.model.ILibraryReference; import org.eclipse.cdt.core.model.ILibraryReference;
import org.eclipse.cdt.core.model.IIncludeReference;
import org.eclipse.cdt.core.model.IMethodDeclaration; import org.eclipse.cdt.core.model.IMethodDeclaration;
import org.eclipse.cdt.core.model.ISourceRoot; import org.eclipse.cdt.core.model.ISourceRoot;
import org.eclipse.cdt.core.model.ITemplate; import org.eclipse.cdt.core.model.ITemplate;
@ -256,6 +257,8 @@ public class CElementImageProvider {
return CPluginImages.DESC_OBJS_BINARY; return CPluginImages.DESC_OBJS_BINARY;
} else if (celement instanceof ILibraryReference) { } else if (celement instanceof ILibraryReference) {
return CPluginImages.DESC_OBJS_LIBRARY; return CPluginImages.DESC_OBJS_LIBRARY;
} else if (celement instanceof IIncludeReference) {
return CPluginImages.DESC_OBJS_INCLUDES_FOLDER;
} }
return CPluginImages.DESC_OBJS_CONTAINER; return CPluginImages.DESC_OBJS_CONTAINER;

View file

@ -80,6 +80,7 @@ public class CPluginImages {
public static final String IMG_OBJS_OUTPUT_FOLDER= NAME_PREFIX + "output_folder_obj.gif"; //$NON-NLS-1$ public static final String IMG_OBJS_OUTPUT_FOLDER= NAME_PREFIX + "output_folder_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_LIBRARY= NAME_PREFIX + "lib_obj.gif"; //$NON-NLS-1$ public static final String IMG_OBJS_LIBRARY= NAME_PREFIX + "lib_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_INCLUDES_CONTAINER = NAME_PREFIX + "includes_container.gif"; //$NON-NLS-1$ public static final String IMG_OBJS_INCLUDES_CONTAINER = NAME_PREFIX + "includes_container.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_INCLUDES_FOLDER = NAME_PREFIX + "hfolder_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_ORDER= NAME_PREFIX + "cp_order_obj.gif"; //$NON-NLS-1$ public static final String IMG_OBJS_ORDER= NAME_PREFIX + "cp_order_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_EXCLUDSION_FILTER_ATTRIB= NAME_PREFIX + "exclusion_filter_attrib.gif"; //$NON-NLS-1$ public static final String IMG_OBJS_EXCLUDSION_FILTER_ATTRIB= NAME_PREFIX + "exclusion_filter_attrib.gif"; //$NON-NLS-1$
@ -130,6 +131,7 @@ public class CPluginImages {
public static final ImageDescriptor DESC_OBJS_OUTPUT_FOLDER= createManaged(T_OBJ, IMG_OBJS_OUTPUT_FOLDER); public static final ImageDescriptor DESC_OBJS_OUTPUT_FOLDER= createManaged(T_OBJ, IMG_OBJS_OUTPUT_FOLDER);
public static final ImageDescriptor DESC_OBJS_LIBRARY= createManaged(T_OBJ, IMG_OBJS_LIBRARY); public static final ImageDescriptor DESC_OBJS_LIBRARY= createManaged(T_OBJ, IMG_OBJS_LIBRARY);
public static final ImageDescriptor DESC_OBJS_INCLUDES_CONTAINER= createManaged(T_OBJ, IMG_OBJS_INCLUDES_CONTAINER); public static final ImageDescriptor DESC_OBJS_INCLUDES_CONTAINER= createManaged(T_OBJ, IMG_OBJS_INCLUDES_CONTAINER);
public static final ImageDescriptor DESC_OBJS_INCLUDES_FOLDER= createManaged(T_OBJ, IMG_OBJS_INCLUDES_FOLDER);
public static final ImageDescriptor DESC_OBJS_ORDER= createManaged(T_OBJ, IMG_OBJS_ORDER); public static final ImageDescriptor DESC_OBJS_ORDER= createManaged(T_OBJ, IMG_OBJS_ORDER);
public static final ImageDescriptor DESC_OBJS_EXCLUSION_FILTER_ATTRIB = createManaged(T_OBJ, IMG_OBJS_EXCLUDSION_FILTER_ATTRIB); public static final ImageDescriptor DESC_OBJS_EXCLUSION_FILTER_ATTRIB = createManaged(T_OBJ, IMG_OBJS_EXCLUDSION_FILTER_ATTRIB);

View file

@ -299,8 +299,6 @@ public class CUIPlugin extends AbstractUIPlugin {
unregisterAdapters(); unregisterAdapters();
super.shutdown();
if (fWorkingCopyManager != null) { if (fWorkingCopyManager != null) {
fWorkingCopyManager.shutdown(); fWorkingCopyManager.shutdown();
fWorkingCopyManager= null; fWorkingCopyManager= null;
@ -311,6 +309,9 @@ public class CUIPlugin extends AbstractUIPlugin {
fDocumentProvider= null; fDocumentProvider= null;
} }
Refactoring.getUndoManager().shutdown(); Refactoring.getUndoManager().shutdown();
// Do this last.
super.shutdown();
} }
private void runUI(Runnable run) { private void runUI(Runnable run) {