Skip to content

Commit 21cc4b8

Browse files
committed
Share Names
As we often process the same projects, it seems better to keep a common instance of Names, so that the names get instantiated only once.
1 parent 42df2ef commit 21cc4b8

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/core/dom/JavacCompilationUnitResolver.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
102102
import com.sun.tools.javac.util.Context;
103103
import com.sun.tools.javac.util.DiagnosticSource;
104+
import com.sun.tools.javac.util.Names;
104105
import com.sun.tools.javac.util.Options;
105106

106107
/**
@@ -573,6 +574,12 @@ public CompilationUnit toCompilationUnit(org.eclipse.jdt.internal.compiler.env.I
573574
return res;
574575
}
575576

577+
private static Names names = new Names(new Context()) {
578+
public void dispose() {
579+
// do nothing, keep content for re-use
580+
}
581+
};
582+
576583
private Map<org.eclipse.jdt.internal.compiler.env.ICompilationUnit, CompilationUnit> parse(org.eclipse.jdt.internal.compiler.env.ICompilationUnit[] sourceUnits, int apiLevel,
577584
Map<String, String> compilerOptions, boolean resolveBindings, int flags, IJavaProject javaProject, WorkingCopyOwner workingCopyOwner,
578585
int focalPoint, IProgressMonitor monitor) {
@@ -581,6 +588,7 @@ private Map<org.eclipse.jdt.internal.compiler.env.ICompilationUnit, CompilationU
581588
}
582589
var compiler = ToolProvider.getSystemJavaCompiler();
583590
Context context = new Context();
591+
context.put(Names.namesKey, names);
584592
CachingJarsJavaFileManager.preRegister(context);
585593
CachingJDKPlatformArguments.preRegister(context);
586594
Map<org.eclipse.jdt.internal.compiler.env.ICompilationUnit, CompilationUnit> result = new HashMap<>(sourceUnits.length, 1.f);

0 commit comments

Comments
 (0)