diff --git a/src/matcher/type/Analysis.java b/src/matcher/type/Analysis.java index f370d8eb..9c44395a 100644 --- a/src/matcher/type/Analysis.java +++ b/src/matcher/type/Analysis.java @@ -2008,6 +2008,9 @@ static void checkInitializer(FieldInstance field, ClassFeatureExtractor context) while ((in = positionsToTrace.poll()) != null) { int pos = il.indexOf(in); Frame frame = frames[pos]; + if (frame == null) { + continue; + } int stackConsumed = getStackDemand(in, frame); for (int i = 0; i < stackConsumed; i++) { diff --git a/src/matcher/type/ClassEnvironment.java b/src/matcher/type/ClassEnvironment.java index 13afb152..1eb45311 100644 --- a/src/matcher/type/ClassEnvironment.java +++ b/src/matcher/type/ClassEnvironment.java @@ -508,6 +508,9 @@ private static void detectOuterClass(ClassInstance cls, ClassNode cn) { } else { // determine outer class by outer$inner name pattern for (InnerClassNode icn : cn.innerClasses) { if (icn.name.equals(cn.name)) { + if (icn.outerName == null) { + return; + } addOuterClass(cls, icn.outerName, true); return; }