[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [cdt-dev] CEditor bombs in M5
|
Here are a couple of stop-gap patches to get CDT up under M5. This first one lets the C editor run without bombing with that NPE:
Index: CEditor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java,v
retrieving revision 1.15
diff -u -r1.15 CEditor.java
--- CEditor.java 4 Feb 2003 20:00:45 -0000 1.15
+++ CEditor.java 11 Feb 2003 22:21:26 -0000
@@ -89,9 +89,9 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.actions.WorkspaceModifyOperation;
import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.part.EditorActionBarContributor;
import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.eclipse.ui.texteditor.DefaultRangeIndicator;
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
import org.eclipse.ui.texteditor.MarkerAnnotation;
@@ -102,7 +102,7 @@
/**
* C specific text editor.
*/
-public class CEditor extends TextEditor implements ISelectionChangedListener {
+public class CEditor extends AbstractTextEditor implements ISelectionChangedListener {
/** The outline page */
and here's an ugly one to get org.eclipse.cdt.core to compile:
Index: org/eclipse/cdt/internal/core/model/Resource.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Resource.java,v
retrieving revision 1.3
diff -u -r1.3 Resource.java
--- org/eclipse/cdt/internal/core/model/Resource.java 20 Dec 2002 14:59:11 -0000 1.3
+++ org/eclipse/cdt/internal/core/model/Resource.java 11 Feb 2003 22:22:39 -0000
@@ -12,6 +12,7 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceProxyVisitor;
import org.eclipse.core.resources.IResourceVisitor;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
@@ -99,6 +100,49 @@
}
}
+ /* (non-Javadoc)
+ * @see org.eclipse.core.resources.IResource#accept(org.eclipse.core.resources.IResourceProxyVisitor, int)
+ */
+ public void accept(IResourceProxyVisitor visitor, int memberFlags)
+ throws CoreException {
+ final boolean includePhantoms = (memberFlags & IContainer.INCLUDE_PHANTOMS) != 0;
+ final boolean includeTeamPrivateMember =
+ (memberFlags & IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS) != 0;
+
+ // The INCLUDE_PHANTOMS flag is not specified and this resource does not exist.
+ if (!includePhantoms && !exists()) {
+ throw new CoreException(new CModelStatus(ICModelStatus.ERROR));
+ }
+
+ // The INCLUDE_PHANTOMS flag is not specified and this resource is
+ // a project that is not open.
+ if (!includePhantoms && !getProject().isOpen()) {
+ throw new CoreException(new CModelStatus(ICModelStatus.ERROR));
+ }
+
+ if ((!isPhantom() && !isTeamPrivateMember()) ||
+ (includePhantoms && isPhantom()) ||
+ (includeTeamPrivateMember && isTeamPrivateMember())) {
+ // If the visitor returns false, this resource's members are not visited.
+ //if (!visitor.visit(this)) {
+ // return;
+ //}
+ }
+
+
+ // Bail out here if not a container.
+ if (getType() == IResource.FILE) {
+ return;
+ }
+
+ IResource[] members = ((IContainer)this).members(memberFlags);
+ for (int i = 0; i < members.length; i++) {
+ members[i].accept(visitor, memberFlags);
+ }
+
+ }
+
+
/**
* @see org.eclipse.core.resources.IResource#copy(IPath, boolean, IProgressMonitor)
*/
@@ -269,7 +313,7 @@
/**
* @see org.eclipse.core.resources.IResource#getSessionProperty(QualifiedName)
*/
- public Object getSessionProperty(QualifiedName key) throws CoreException {
+ public Object getSessionProperty(QualifiedName key) {
if (sessionProperties != null) {
return sessionProperties.get(key);
}
Sorry I don't have more time right now to investigate better patches. Hopefully Alain or Doug can take a look at it soon.
--Ed