From b12b65bfb8d95020d8138d1155006c8c2dc46a12 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Tue, 15 Apr 2014 11:17:12 -0400 Subject: [PATCH] Bug 432839 - Fix out of memory condition with Qt projects. Turn the cache in QtPDOMLinkage into a WeahHashMap. Change-Id: I261d3aec5ee6b7537c4bfaa204dadd85b686140c Reviewed-on: https://git.eclipse.org/r/25064 Reviewed-by: Doug Schaefer Tested-by: Doug Schaefer --- .../eclipse/cdt/internal/qt/core/pdom/QtPDOMLinkage.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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)