diff options
author | Markus Schorn | 2007-11-15 16:17:30 +0000 |
---|---|---|
committer | Markus Schorn | 2007-11-15 16:17:30 +0000 |
commit | 4f852d99c198ff9837dc872d5e91929af469cee6 (patch) | |
tree | 4de0b1229e1dbc0c604ff37d94f92175c5e635c6 /core/org.eclipse.cdt.core/parser | |
parent | 74a6d68f291a3c986825ebbc6951782c2ebfd199 (diff) | |
download | org.eclipse.cdt-4f852d99c198ff9837dc872d5e91929af469cee6.tar.gz org.eclipse.cdt-4f852d99c198ff9837dc872d5e91929af469cee6.tar.xz org.eclipse.cdt-4f852d99c198ff9837dc872d5e91929af469cee6.zip |
JUnit-tests and fixes for the image-locations.
Diffstat (limited to 'core/org.eclipse.cdt.core/parser')
3 files changed, 8 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/MacroExpander.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/MacroExpander.java index f0716b831d3..871303f0c78 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/MacroExpander.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/MacroExpander.java @@ -245,7 +245,7 @@ public class MacroExpander { private ImageLocationInfo createImageLocationInfo(Token t) { final Object s= t.fSource; if (s instanceof ObjectStyleMacro) { - return new MacroImageLocationInfo((ObjectStyleMacro) s, fEndOffset, fEndOffset); + return new MacroImageLocationInfo((ObjectStyleMacro) s, t.getOffset(), t.getEndOffset()); } else if (s instanceof CPreprocessor) { int sequenceNumber= fLocationMap.getSequenceNumberForOffset(t.getOffset()); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java index 7dd0edb64b2..1cac776b61a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java @@ -136,8 +136,10 @@ class ObjectStyleMacro extends PreprocessorMacro { } private void setSource(Token t) { + final int shift= -fExpansionOffset; while (t != null) { t.fSource= this; + t.shiftOffset(shift); t= (Token) t.getNext(); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Token.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Token.java index 4fdd9ab4bd5..7d9917f36ca 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Token.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Token.java @@ -65,6 +65,11 @@ public class Token implements IToken, Cloneable { fEndOffset= endOffset; } + public void shiftOffset(int shift) { + fOffset+= shift; + fEndOffset+= shift; + } + public char[] getCharImage() { return TokenUtil.getImage(getType()); } |