diff --git a/jode/jode/decompiler/FieldAnalyzer.java b/jode/jode/decompiler/FieldAnalyzer.java index 5397a9e..bc50e88 100644 --- a/jode/jode/decompiler/FieldAnalyzer.java +++ b/jode/jode/decompiler/FieldAnalyzer.java @@ -112,10 +112,21 @@ public class FieldAnalyzer implements Analyzer { public boolean setClassConstant(String clazzName) { if (constant != null) return false; - if (fieldName.equals("class$" + clazzName.replace('.', '$')) - || fieldName.equals("class$L" + clazzName.replace('.', '$'))) { - analyzedSynthetic(); - return true; + if (clazzName.charAt(0) == '[') { + if (clazzName.charAt(clazzName.length()-1) == ';') + clazzName = clazzName.substring(0, clazzName.length()-1); + + if (fieldName.equals("array"+ (clazzName.replace('[', '$') + .replace('.', '$')))) { + analyzedSynthetic(); + return true; + } + } else { + if (fieldName.equals("class$" + clazzName.replace('.', '$')) + || fieldName.equals("class$L" + clazzName.replace('.', '$'))) { + analyzedSynthetic(); + return true; + } } return false; }