Revert "Bug 537282 - API analysis is very slow with Java 11 "
This reverts commit fa44e339dea9d5629fb76651a63b1377534e264b.
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java
index 19814c3..d313fbb 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java
@@ -1345,17 +1345,11 @@
private Set<Reference> processInnerClass(IApiType type, int refkinds) throws CoreException {
HashSet<Reference> refs = new HashSet<>();
ReferenceExtractor extractor = new ReferenceExtractor(type, refs, refkinds, this.fieldtracker);
- byte[] bytes = ((AbstractApiTypeRoot) type.getTypeRoot()).getContents();
- boolean updated = Util.updateVersionFrom11to10(bytes);
- ClassReader reader = new ClassReader(bytes);
- if (updated) {
- Util.updateVersionFrom10to11(bytes);
- }
+ ClassReader reader = new ClassReader(((AbstractApiTypeRoot) type.getTypeRoot()).getContents());
reader.accept(extractor, ClassReader.SKIP_FRAMES);
return refs;
}
-
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
try {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java
index a7772a6..3a9f476 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java
@@ -157,12 +157,7 @@
public List<IReference> extractReferences(int referenceMask, IProgressMonitor monitor) throws CoreException {
HashSet<Reference> references = new HashSet<>();
ReferenceExtractor extractor = new ReferenceExtractor(this, references, referenceMask);
- byte[] bytes = ((AbstractApiTypeRoot) fStorage).getContents();
- boolean updated = Util.updateVersionFrom11to10(bytes);
- ClassReader reader = new ClassReader(bytes);
- if (updated) {
- Util.updateVersionFrom10to11(bytes);
- }
+ ClassReader reader = new ClassReader(((AbstractApiTypeRoot) fStorage).getContents());
reader.accept(extractor, ClassReader.SKIP_FRAMES);
return new LinkedList<>(references);
}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java
index 2b306ee..e9dc97c 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java
@@ -27,7 +27,6 @@
import org.eclipse.pde.api.tools.internal.provisional.model.IApiComponent;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiType;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiTypeRoot;
-import org.eclipse.pde.api.tools.internal.util.Util;
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
@@ -257,11 +256,7 @@
public static IApiType buildTypeStructure(byte[] bytes, IApiComponent component, IApiTypeRoot file) {
TypeStructureBuilder visitor = new TypeStructureBuilder(new ClassNode(), component, file);
try {
- boolean updated = Util.updateVersionFrom11to10(bytes);
ClassReader classReader = new ClassReader(bytes);
- if (updated) {
- Util.updateVersionFrom10to11(bytes);
- }
classReader.accept(visitor, ClassReader.SKIP_CODE | ClassReader.SKIP_FRAMES);
} catch (ArrayIndexOutOfBoundsException e) {
logAndReturn(file, e);
@@ -288,12 +283,7 @@
AbstractApiTypeRoot abstractApiTypeRoot = (AbstractApiTypeRoot) typeRoot;
EnclosingMethodSetter visitor = new EnclosingMethodSetter(new ClassNode(), currentAnonymousLocalType.getName());
try {
- byte[] bytes = abstractApiTypeRoot.getContents();
- boolean updated = Util.updateVersionFrom11to10(bytes);
- ClassReader classReader = new ClassReader(bytes);
- if (updated) {
- Util.updateVersionFrom10to11(bytes);
- }
+ ClassReader classReader = new ClassReader(abstractApiTypeRoot.getContents());
classReader.accept(visitor, ClassReader.SKIP_FRAMES);
} catch (ArrayIndexOutOfBoundsException e) {
ApiPlugin.log(e);
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
index 98211f9..b20def9 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
@@ -2977,24 +2977,5 @@
return type;
}
- public static boolean updateVersionFrom11to10(byte[] bytes) {
- if (bytes.length >= 8) {
- if (bytes[7] == 55) {
- bytes[7] = 54;
- return true;
- }
- }
- return false;
- }
-
- public static void updateVersionFrom10to11(byte[] bytes) {
- if (bytes.length >= 8) {
- if (bytes[7] == 54) {
- bytes[7] = 55;
- }
- }
-
- }
-
}