Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Schorn2007-11-15 16:17:30 +0000
committerMarkus Schorn2007-11-15 16:17:30 +0000
commit4f852d99c198ff9837dc872d5e91929af469cee6 (patch)
tree4de0b1229e1dbc0c604ff37d94f92175c5e635c6 /core/org.eclipse.cdt.core/parser
parent74a6d68f291a3c986825ebbc6951782c2ebfd199 (diff)
downloadorg.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')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/MacroExpander.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Token.java5
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());
}

Back to the top