Skip to content

Commit 11d406b

Browse files
authored
Fix NullPointerException when decompiling a method with a wildcard generic before a local class (#137)
1 parent d04f078 commit 11d406b

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

FernFlower-Patches/0044-Search-generics-when-finding-where-to-inject-local-c.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Subject: [PATCH] Search generics when finding where to inject local classes.
55

66

77
diff --git a/src/org/jetbrains/java/decompiler/main/rels/NestedClassProcessor.java b/src/org/jetbrains/java/decompiler/main/rels/NestedClassProcessor.java
8-
index 5a52b4d9b2c4810cceeb7df3e2271a3dd6ddbe7f..df6411f0d562826605d4f9b26666836ae09597b4 100644
8+
index 5a52b4d9b2c4810cceeb7df3e2271a3dd6ddbe7f..52aabbb2d9c79a35555fe953b9d27253321b1f29 100644
99
--- a/src/org/jetbrains/java/decompiler/main/rels/NestedClassProcessor.java
1010
+++ b/src/org/jetbrains/java/decompiler/main/rels/NestedClassProcessor.java
1111
@@ -25,6 +25,7 @@ import org.jetbrains.java.decompiler.struct.attr.StructGeneralAttribute;
@@ -27,9 +27,9 @@ index 5a52b4d9b2c4810cceeb7df3e2271a3dd6ddbe7f..df6411f0d562826605d4f9b26666836a
2727
+ stack.push(varExpr.getDefinitionType());
2828
+ while (!stack.isEmpty()) {
2929
+ VarType varType = stack.pop();
30-
+ if (classType.equals(varType) || (varType.getArrayDim() > 0 && classType.getValue().equals(varType.getValue()))) {
30+
+ if (classType.equals(varType) || (varType != null && varType.getArrayDim() > 0 && classType.getValue().equals(varType.getValue()))) {
3131
+ res = true;
32-
+ } else if (varType.isGeneric()) {
32+
+ } else if (varType != null && varType.isGeneric()) {
3333
+ ((GenericType)varType).getArguments().forEach(stack::push);
3434
+ }
3535
}

0 commit comments

Comments
 (0)