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)
|
/* (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)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue