diff options
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java')
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java index a3bc301dad0..da4a20f4cdb 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java @@ -148,6 +148,9 @@ public class Value implements IValue { buf.putByte((byte) (ITypeMarshalBuffer.VALUE | ITypeMarshalBuffer.FLAG3)); buf.putLong(lv); } + } else if (fFixedValue != null) { + buf.putByte((byte) (ITypeMarshalBuffer.VALUE | ITypeMarshalBuffer.FLAG4)); + buf.putCharArray(fFixedValue); } else { buf.putByte((ITypeMarshalBuffer.VALUE)); fEvaluation.marshal(buf, true); @@ -169,7 +172,10 @@ public class Value implements IValue { long val= buf.getLong(); return Value.create(val); } - + if ((firstByte & ITypeMarshalBuffer.FLAG4) != 0) { + char[] fixedValue = buf.getCharArray(); + return new Value(fixedValue, null); + } ISerializableEvaluation eval= buf.unmarshalEvaluation(); if (eval instanceof ICPPEvaluation) return new Value(null, (ICPPEvaluation) eval); |