ResolveElementCache: Use softly (not weakly) retained values

Fixes performance problems with long running searches analyzing function bodies several times
This commit is contained in:
Pavel V. Talanov
2015-01-15 18:48:18 +03:00
parent 90e7d2151b
commit 2d68637fd9
3 changed files with 8 additions and 8 deletions
@@ -55,7 +55,7 @@ public class ResolveElementCache extends ElementResolver {
ResolveSession resolveSession = ResolveElementCache.this.resolveSession;
LazyResolveStorageManager manager = resolveSession.getStorageManager();
MemoizedFunctionToNotNull<JetElement, BindingContext> elementsCacheFunction =
manager.createWeaklyRetainedMemoizedFunction(new Function1<JetElement, BindingContext>() {
manager.createSoftlyRetainedMemoizedFunction(new Function1<JetElement, BindingContext>() {
@Override
public BindingContext invoke(JetElement jetElement) {
return elementAdditionalResolve(jetElement, jetElement, BodyResolveMode.FULL);