From 5cecebf23895d1dde81fd6d34e8c618ba06ab8fb Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 17 Jun 1999 10:59:54 +0000 Subject: [PATCH] isFinal added merged setSpecial into setConstant skipWriting added git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@841 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/decompiler/FieldAnalyzer.java | 34 ++++++++++++------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/jode/jode/decompiler/FieldAnalyzer.java b/jode/jode/decompiler/FieldAnalyzer.java index 056bea4..ce8a96a 100644 --- a/jode/jode/decompiler/FieldAnalyzer.java +++ b/jode/jode/decompiler/FieldAnalyzer.java @@ -72,29 +72,25 @@ public class FieldAnalyzer implements Analyzer { return isSynthetic; } + public boolean isFinal() { + return Modifier.isFinal(modifiers); + } + public void analyzedSynthetic() { analyzedSynthetic = true; } public boolean setInitializer(Expression expr) { - expr.makeInitializer(); - if (constant != null) - return constant.equals(expr); - constant = expr; - return true; - } - - public boolean setSpecial(Expression expr) { - if (!isSynthetic || !Modifier.isFinal(modifiers)) - return false; - if (!fieldName.startsWith("this$")) { - if (!(expr instanceof LocalLoadOperator) - || !fieldName.startsWith("val$")) - return false; - } if (constant != null) return constant.equals(expr); - analyzedSynthetic(); + + if (isSynthetic && isFinal() + && (fieldName.startsWith("this$") + || fieldName.startsWith("val$"))) + analyzedSynthetic(); + else + expr.makeInitializer(); + constant = expr; return true; } @@ -116,11 +112,13 @@ public class FieldAnalyzer implements Analyzer { constant = constant.simplify(); } + public boolean skipWriting() { + return analyzedSynthetic; + } + public void dumpSource(TabbedPrintWriter writer) throws java.io.IOException { - if (analyzedSynthetic) - return; /*XXX*/ if (isDeprecated) { writer.println("/**"); writer.println(" * @deprecated");