aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Herzig <me@johni0702.de>2019-05-25 18:47:19 +0200
committerJonas Herzig <me@johni0702.de>2019-05-25 18:47:19 +0200
commit5db2235f83ae0087c0f0a8ba0e6c3792d68e6bea (patch)
treeb13766c9daad6f089d5480ce4915800f884d82c5
parent0da1aaeb4ff35a96648fe93b1a250392ced615eb (diff)
downloadRemap-5db2235f83ae0087c0f0a8ba0e6c3792d68e6bea.tar.gz
Remap-5db2235f83ae0087c0f0a8ba0e6c3792d68e6bea.tar.bz2
Remap-5db2235f83ae0087c0f0a8ba0e6c3792d68e6bea.zip
Fix overridden super-super-class methods with no mappings for super class
E.g. A extends B extends C where only C has declared mappings will prematurely stop searching for C-methods overridden in A because there are no mappings for B
-rw-r--r--src/main/java/com/replaymod/gradle/remap/Transformer.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/com/replaymod/gradle/remap/Transformer.java b/src/main/java/com/replaymod/gradle/remap/Transformer.java
index de81501..e41867f 100644
--- a/src/main/java/com/replaymod/gradle/remap/Transformer.java
+++ b/src/main/java/com/replaymod/gradle/remap/Transformer.java
@@ -520,17 +520,18 @@ class Transformer {
}
mapping = null;
}
-
- ITypeBinding superClass = declaringClass.getSuperclass();
- if (superClass != null) {
- parentQueue.offer(superClass);
- }
- for (ITypeBinding anInterface : declaringClass.getInterfaces()) {
- parentQueue.offer(anInterface);
- }
while (mapping == null) {
declaringClass = parentQueue.poll();
if (declaringClass == null) return true;
+
+ ITypeBinding superClass = declaringClass.getSuperclass();
+ if (superClass != null) {
+ parentQueue.offer(superClass);
+ }
+ for (ITypeBinding anInterface : declaringClass.getInterfaces()) {
+ parentQueue.offer(anInterface);
+ }
+
name = stripGenerics(declaringClass.getQualifiedName());
if (name.isEmpty()) continue;
mapping = map.get(name);