1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-06 09:16:02 +02:00

Bug 123745: Disassembly view can get into endless loop.

This commit is contained in:
Mikhail Khodjaiants 2006-01-15 19:38:42 +00:00
parent e4b95eaf7d
commit ecb9f13ea8
2 changed files with 12 additions and 3 deletions

View file

@ -1,3 +1,7 @@
2006-01-15 Mikhail Khodjaiants
Bug 123745: Disassembly view can get into endless loop.
* DisassemblyBlock.java
2006-01-04 Mikhail Khodjaiants 2006-01-04 Mikhail Khodjaiants
Bug 118900: Display libraries loaded in post-mortem debug. Bug 118900: Display libraries loaded in post-mortem debug.
* CDebugTarget.java * CDebugTarget.java

View file

@ -163,7 +163,7 @@ public class DisassemblyBlock implements IDisassemblyBlock, IAdaptable {
element = ((ICSourceLocator)locator).findSourceElement( fileName ); element = ((ICSourceLocator)locator).findSourceElement( fileName );
} }
fSourceElement = element; fSourceElement = element;
File file= null; File file = null;
if ( element instanceof IFile ) { if ( element instanceof IFile ) {
file = ((IFile)element).getLocation().toFile(); file = ((IFile)element).getLocation().toFile();
} }
@ -180,16 +180,21 @@ public class DisassemblyBlock implements IDisassemblyBlock, IAdaptable {
} }
for ( int i = 0; i < result.length; ++i ) { for ( int i = 0; i < result.length; ++i ) {
String text = null; String text = null;
boolean failed = false;
int lineNumber = mi[i].getLineNumber(); int lineNumber = mi[i].getLineNumber();
if ( reader != null ) { if ( reader != null ) {
while( reader.getLineNumber() + 1 < lineNumber ) { while( reader.getLineNumber() + 1 < lineNumber ) {
try { try {
reader.readLine(); if ( reader.readLine() == null ) {
// break if the end of file is reached (see bug #123745)
failed = true;
break;
}
} }
catch( IOException e ) { catch( IOException e ) {
} }
} }
if ( reader.getLineNumber() + 1 == lineNumber ) { if ( !failed && reader.getLineNumber() + 1 == lineNumber ) {
try { try {
text = reader.readLine() + '\n'; text = reader.readLine() + '\n';
} }