diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMLinkage.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMLinkage.java index bf438eb328b..7c04840cce7 100644 --- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMLinkage.java +++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMLinkage.java @@ -10,8 +10,8 @@ package org.eclipse.cdt.internal.qt.core.pdom; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.Map; +import java.util.WeakHashMap; import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.ast.IASTName; @@ -58,7 +58,7 @@ public class QtPDOMLinkage extends PDOMLinkage { // The version that has been read from/written to the persisted file. private int version; - private final Map cache = new HashMap(); + private final Map cache = new WeakHashMap(); public QtPDOMLinkage(PDOM pdom, long record) throws CoreException { super(pdom, record); @@ -166,6 +166,9 @@ public class QtPDOMLinkage extends PDOMLinkage { // // I don't think this needs to be thread-safe, because things are only added from // the single indexer task. + // + // Doug: The cache is causing out of memory conditions. Commenting out for now. + // PDOMBinding pdomBinding = null; pdomBinding = cache.get(qtAstName); if (pdomBinding != null)