From 714e02cb6ad5af35fdcb716f5594d7218b161fef Mon Sep 17 00:00:00 2001 From: jochen Date: Fri, 2 Jul 1999 18:43:31 +0000 Subject: [PATCH] .class field: handle array$ names git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@973 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/decompiler/FieldAnalyzer.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) 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; }