diff --git a/jode/jode/expr/ComplexExpression.java b/jode/jode/expr/ComplexExpression.java index ed90b8d..ebd47d2 100644 --- a/jode/jode/expr/ComplexExpression.java +++ b/jode/jode/expr/ComplexExpression.java @@ -226,8 +226,8 @@ public class ComplexExpression extends Expression { if (!opType.equals(exprType) && opType != Type.tError) { if (Decompiler.isTypeDebugging) Decompiler.err.println("change in "+this+": " - +exprType - +"->"+opType); + +exprType + +"->"+opType); subExpressions[i].setType(opType); changed = true; } @@ -488,7 +488,8 @@ public class ComplexExpression extends Expression { GetFieldOperator get = (GetFieldOperator) subExpressions[1]; ComplexExpression ass = (ComplexExpression) subExpressions[2]; PutFieldOperator put = (PutFieldOperator) ass.getOperator(); - if (put.isSynthetic() && put.matches(get) + if (put.getField() != null + && put.getField().isSynthetic() && put.matches(get) && cmp.subExpressions[0] instanceof GetFieldOperator && put.matches((GetFieldOperator)cmp.subExpressions[0]) && ass.subExpressions[0] instanceof ComplexExpression @@ -508,6 +509,7 @@ public class ComplexExpression extends Expression { .equals("class$" + clazz.replace('.', '$')) || put.getFieldName() .equals("class$L" + clazz.replace('.', '$'))) { + put.getField().analyzedSynthetic(); return new ClassFieldOperator(Type.tClass(clazz)); } }