diff --git a/core/org.eclipse.cdt.core/browser/ChangeLog-browser b/core/org.eclipse.cdt.core/browser/ChangeLog-browser index 11bef292262..076461df5df 100644 --- a/core/org.eclipse.cdt.core/browser/ChangeLog-browser +++ b/core/org.eclipse.cdt.core/browser/ChangeLog-browser @@ -1,4 +1,8 @@ -2005-03-9 Chris Wiebe +2005-03-29 Chris Wiebe + small change for potential reduction in memory usage + * browser/org/eclipse/cdt/core/browser/QualifiedTypeName.java + +2005-03-29 Chris Wiebe temporary fix for type parser timeout * browser/org/eclipse/cdt/core/browser/cache/TypeParser.java diff --git a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/QualifiedTypeName.java b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/QualifiedTypeName.java index b7e2ee946e0..1f772b921a6 100644 --- a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/QualifiedTypeName.java +++ b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/QualifiedTypeName.java @@ -71,13 +71,17 @@ public class QualifiedTypeName implements IQualifiedTypeName { lastIndex = 0; qualifierIndex = qualifiedName.indexOf(QUALIFIER, 0); while (qualifierIndex >= 0) { - segments[segmentCount] = qualifiedName.substring(lastIndex, qualifierIndex); + // note: we allocate a new string rather than use the returned substring, + // otherwise we're holding a reference to the entire original string + segments[segmentCount] = new String(qualifiedName.substring(lastIndex, qualifierIndex)); ++segmentCount; lastIndex = qualifierIndex + QUALIFIER.length(); qualifierIndex = qualifiedName.indexOf(QUALIFIER, lastIndex); } Assert.isTrue(segmentCount == (maxSegments - 1)); - segments[segmentCount] = qualifiedName.substring(lastIndex); + // note: we allocate a new string rather than use the returned substring, + // otherwise we're holding a reference to the entire original string + segments[segmentCount] = new String(qualifiedName.substring(lastIndex)); } return segments; }