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:
parent
37139c7f86
commit
d7a3d94652
3 changed files with 32 additions and 9 deletions
|
@ -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)
|
||||
*/
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue