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)
* @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) {
store = CUIPlugin.getDefault().getPreferenceStore();
}
fPreferenceStore = store;
fPreferenceStore.addPropertyChangeListener(fPreferenceListener);
fCorePreferenceStore= coreStore;
if (fCorePreferenceStore != null) {
fCorePreferenceStore.addPropertyChangeListener(fPreferenceListener);
}
fColorManager= new CColorManager();
fCodeScanner= new CCodeScanner(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);
fSinglelineCommentScanner= new CCommentScanner(fColorManager, store, coreStore, ICColorConstants.C_SINGLE_LINE_COMMENT);
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.CoreModel;
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.ISourceReference;
import org.eclipse.cdt.core.model.ITranslationUnit;
@ -438,7 +439,10 @@ public class EditorUtility {
public static IStorage getStorage(IBinary bin) {
IStorage store = null;
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) {
// nothing;
}