1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix for 103024: NPE in indexerEncoderUtil.nodeInVisitedExternalEheader

Project was not being set when creating indexer in IndexManager#getDefaultIndexer().
This commit is contained in:
Vladimir Hirsl 2005-07-14 20:35:58 +00:00
parent ca3d6ea937
commit ecb664818a
7 changed files with 42 additions and 4 deletions

View file

@ -1,3 +1,14 @@
2005-07-14 Vladimir Hirsl
Fix for 103024: NPE in indexerEncoderUtil.nodeInVisitedExternalEheader
Project was not being set when creating indexer in IndexManager#getDefaultIndexer().
* index/org/eclipse/cdt/core/index/ICDTIndexer.java
* index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java
* index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java
* index/org/eclipse/cdt/internal/core/index/nullindexer/NullIndexer.java
* index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
* src/org/eclipse/cdt/internal/core/InternalCExtension.java
2005-07-14 Vladimir Hirsl
Fix for 95826: indexer message "File not indexed because it was not built" won't go away
Info marker was missing INDEXER_MARKER_ORIGINATOR attribute.

View file

@ -174,5 +174,11 @@ public interface ICDTIndexer {
*/
public void saveIndex(IIndex index) throws IOException;
/**
* Associate a project with indexer
*
* @param project
*/
public void setIndexerProject(IProject project);
}

View file

@ -29,6 +29,7 @@ import org.eclipse.cdt.core.index.IIndexStorage;
import org.eclipse.cdt.core.index.IndexChangeEvent;
import org.eclipse.cdt.core.model.ICModelMarker;
import org.eclipse.cdt.internal.core.ConsoleOutputSniffer;
import org.eclipse.cdt.internal.core.InternalCExtension;
import org.eclipse.cdt.internal.core.Util;
import org.eclipse.cdt.internal.core.index.IIndex;
import org.eclipse.cdt.internal.core.index.cindexstorage.CIndexStorage;
@ -556,4 +557,11 @@ public class CTagsIndexer extends AbstractCExtension implements ICDTIndexer {
//Nothing yet
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.index.ICDTIndexer#setIndexerProject(org.eclipse.core.resources.IProject)
*/
public void setIndexerProject(IProject project) {
setProject(project);
}
}

View file

@ -658,5 +658,12 @@ public class DOMSourceIndexer extends AbstractCExtension implements ICDTIndexer
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.index.ICDTIndexer#setIndexerProject(org.eclipse.core.resources.IProject)
*/
public void setIndexerProject(IProject project) {
setProject(project);
}
}

View file

@ -122,4 +122,9 @@ public class NullIndexer extends AbstractCExtension implements ICDTIndexer {
// TODO Auto-generated method stub
}
public void setIndexerProject(IProject project) {
// TODO Auto-generated method stub
}
}

View file

@ -419,6 +419,7 @@ public class IndexManager extends JobManager{
for (int i = 0; i < element.length; i++) {
if (element[i].getName().equalsIgnoreCase("cextension")) { //$NON-NLS-1$
indexer = (ICDTIndexer) element[i].createExecutableExtension("run"); //$NON-NLS-1$
indexer.setIndexerProject(project);
break;
}
}
@ -433,7 +434,7 @@ public class IndexManager extends JobManager{
ICDTIndexer indexer = null;
try{
ICDescriptor cdesc = CCorePlugin.getDefault().getCProjectDescription(project,true);
ICExtensionReference[] cextensions = cdesc.get(CCorePlugin.INDEXER_UNIQ_ID, true);
ICExtensionReference[] cextensions = cdesc.get(CCorePlugin.INDEXER_UNIQ_ID, false);
if (cextensions != null && cextensions.length > 0)
indexer = (ICDTIndexer) cextensions[0].createExtension();
@ -492,7 +493,7 @@ public class IndexManager extends JobManager{
monitor.enterWrite();
try{
//Purge the old indexer from the indexer map
Object e = indexerMap.remove(project);
indexerMap.remove(project);
} finally {
monitor.exitWrite();
final ICDTIndexer indexer = this.getIndexerForProject(project);

View file

@ -19,7 +19,7 @@ public abstract class InternalCExtension extends PlatformObject {
private IProject fProject;
private ICExtensionReference extensionRef;
void setProject(IProject project) {
protected void setProject(IProject project) {
fProject = project;
}