From 12aaa62fa7ce3fe23587fdaf1ab187255338b3cb Mon Sep 17 00:00:00 2001 From: Chris Wiebe Date: Wed, 30 Mar 2005 00:46:55 +0000 Subject: [PATCH] 2005-03-29 Chris Wiebe small change for potential reduction in memory usage * browser/org/eclipse/cdt/core/browser/QualifiedTypeName.java --- core/org.eclipse.cdt.core/browser/ChangeLog-browser | 6 +++++- .../org/eclipse/cdt/core/browser/QualifiedTypeName.java | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) 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; }