1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

fixed NPE

improved IBinary handling in the cview and editor
fixed preferences NPE with new pre-M6 intergation builds

CI: dschaefer
This commit is contained in:
David Inglis 2006-03-31 15:55:06 +00:00
parent 37139c7f86
commit d7a3d94652
3 changed files with 32 additions and 9 deletions

View file

@ -394,6 +394,24 @@ public class Binary extends Openable implements IBinary {
//} //}
} }
/**
* @see org.eclipse.cdt.core.model.IOpenable#getBuffer()
*
* overridden from default as we do not need to create our children to provider a buffer since the buffer just contains
* IBinaryOject contents which is not model specific.
*/
public IBuffer getBuffer() throws CModelException {
if (hasBuffer()) {
IBuffer buffer = getBufferManager().getBuffer(this);
if (buffer == null) {
// try to (re)open a buffer
buffer = openBuffer(null);
}
return buffer;
}
return null;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.model.Openable#openBuffer(org.eclipse.core.runtime.IProgressMonitor) * @see org.eclipse.cdt.internal.core.model.Openable#openBuffer(org.eclipse.core.runtime.IProgressMonitor)
*/ */

View file

@ -81,14 +81,6 @@ public class CTextTools {
if(store == null) { if(store == null) {
store = CUIPlugin.getDefault().getPreferenceStore(); store = CUIPlugin.getDefault().getPreferenceStore();
} }
fPreferenceStore = store;
fPreferenceStore.addPropertyChangeListener(fPreferenceListener);
fCorePreferenceStore= coreStore;
if (fCorePreferenceStore != null) {
fCorePreferenceStore.addPropertyChangeListener(fPreferenceListener);
}
fColorManager= new CColorManager(); fColorManager= new CColorManager();
fCodeScanner= new CCodeScanner(fColorManager, store); fCodeScanner= new CCodeScanner(fColorManager, store);
fCppCodeScanner= new CppCodeScanner(fColorManager, store); fCppCodeScanner= new CppCodeScanner(fColorManager, store);
@ -97,6 +89,15 @@ public class CTextTools {
fMultilineCommentScanner= new CCommentScanner(fColorManager, store, coreStore, ICColorConstants.C_MULTI_LINE_COMMENT); fMultilineCommentScanner= new CCommentScanner(fColorManager, store, coreStore, ICColorConstants.C_MULTI_LINE_COMMENT);
fSinglelineCommentScanner= new CCommentScanner(fColorManager, store, coreStore, ICColorConstants.C_SINGLE_LINE_COMMENT); fSinglelineCommentScanner= new CCommentScanner(fColorManager, store, coreStore, ICColorConstants.C_SINGLE_LINE_COMMENT);
fStringScanner= new SingleTokenCScanner(fColorManager, store, ICColorConstants.C_STRING); fStringScanner= new SingleTokenCScanner(fColorManager, store, ICColorConstants.C_STRING);
fPreferenceStore = store;
fPreferenceStore.addPropertyChangeListener(fPreferenceListener);
fCorePreferenceStore= coreStore;
if (fCorePreferenceStore != null) {
fCorePreferenceStore.addPropertyChangeListener(fPreferenceListener);
}
} }
/** /**

View file

@ -19,6 +19,7 @@ import java.text.MessageFormat;
import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IBinary; import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.core.model.IBuffer;
import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.ISourceReference; import org.eclipse.cdt.core.model.ISourceReference;
import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.model.ITranslationUnit;
@ -438,7 +439,10 @@ public class EditorUtility {
public static IStorage getStorage(IBinary bin) { public static IStorage getStorage(IBinary bin) {
IStorage store = null; IStorage store = null;
try { try {
store = new FileStorage (new ByteArrayInputStream(bin.getBuffer().getContents().getBytes()), bin.getPath()); IBuffer buffer = bin.getBuffer();
if (buffer != null) {
store = new FileStorage (new ByteArrayInputStream(buffer.getContents().getBytes()), bin.getPath());
}
} catch (CModelException e) { } catch (CModelException e) {
// nothing; // nothing;
} }