diff --git a/src/org/jetbrains/java/decompiler/main/ClassWriter.java b/src/org/jetbrains/java/decompiler/main/ClassWriter.java index 5d90668..a19bb36 100644 --- a/src/org/jetbrains/java/decompiler/main/ClassWriter.java +++ b/src/org/jetbrains/java/decompiler/main/ClassWriter.java @@ -1,6 +1,4 @@ -/* - * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.java.decompiler.main; import org.jetbrains.java.decompiler.code.CodeConstants; @@ -517,10 +515,9 @@ public class ClassWriter { try { buffer.append(root.toJava(indent, tracer)); } - catch (Throwable ex) { - DecompilerContext.getLogger().writeMessage("Method " + mt.getName() + " " + mt.getDescriptor() + " couldn't be written.", - IFernflowerLogger.Severity.WARN, - ex); + catch (Throwable t) { + String message = "Method " + mt.getName() + " " + mt.getDescriptor() + " couldn't be written."; + DecompilerContext.getLogger().writeMessage(message, IFernflowerLogger.Severity.WARN, t); methodWrapper.decompiledWithErrors = true; } } @@ -805,7 +802,6 @@ public class ClassWriter { buffer.append(';'); buffer.appendLineSeparator(); - tracer.incrementCurrentSourceLine(); } else { if (!clinit && !dinit) { @@ -831,11 +827,9 @@ public class ClassWriter { tracer.setCurrentSourceLine(codeTracer.getCurrentSourceLine()); tracer.addTracer(codeTracer); } - catch (Throwable ex) { - DecompilerContext.getLogger() - .writeMessage("Method " + mt.getName() + " " + mt.getDescriptor() + " couldn't be written.", - IFernflowerLogger.Severity.WARN, - ex); + catch (Throwable t) { + String message = "Method " + mt.getName() + " " + mt.getDescriptor() + " couldn't be written."; + DecompilerContext.getLogger().writeMessage(message, IFernflowerLogger.Severity.WARN, t); methodWrapper.decompiledWithErrors = true; } } @@ -850,8 +844,9 @@ public class ClassWriter { tracer.addMapping(root.getDummyExit().bytecode); } buffer.appendIndent(indent).append('}').appendLineSeparator(); - tracer.incrementCurrentSourceLine(); } + + tracer.incrementCurrentSourceLine(); } finally { DecompilerContext.setProperty(DecompilerContext.CURRENT_METHOD_WRAPPER, outerWrapper); diff --git a/src/org/jetbrains/java/decompiler/main/Fernflower.java b/src/org/jetbrains/java/decompiler/main/Fernflower.java index b7ca4a8..37a7db1 100644 --- a/src/org/jetbrains/java/decompiler/main/Fernflower.java +++ b/src/org/jetbrains/java/decompiler/main/Fernflower.java @@ -114,8 +114,8 @@ public class Fernflower implements IDecompiledData { classProcessor.writeClass(cl, buffer); return buffer.toString(); } - catch (Throwable ex) { - DecompilerContext.getLogger().writeMessage("Class " + cl.qualifiedName + " couldn't be fully decompiled.", ex); + catch (Throwable t) { + DecompilerContext.getLogger().writeMessage("Class " + cl.qualifiedName + " couldn't be fully decompiled.", t); return null; } } diff --git a/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java b/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java index 9f41a37..15a4898 100644 --- a/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java +++ b/src/org/jetbrains/java/decompiler/main/rels/ClassWrapper.java @@ -122,9 +122,9 @@ public class ClassWrapper { } } } - catch (Throwable ex) { + catch (Throwable t) { String message = "Method " + mt.getName() + " " + mt.getDescriptor() + " couldn't be decompiled."; - DecompilerContext.getLogger().writeMessage(message, IFernflowerLogger.Severity.WARN, ex); + DecompilerContext.getLogger().writeMessage(message, IFernflowerLogger.Severity.WARN, t); isError = true; } diff --git a/src/org/jetbrains/java/decompiler/main/rels/MethodProcessorRunnable.java b/src/org/jetbrains/java/decompiler/main/rels/MethodProcessorRunnable.java index 935589f..a639372 100644 --- a/src/org/jetbrains/java/decompiler/main/rels/MethodProcessorRunnable.java +++ b/src/org/jetbrains/java/decompiler/main/rels/MethodProcessorRunnable.java @@ -129,39 +129,26 @@ public class MethodProcessorRunnable implements Runnable { SequenceHelper.condenseSequences(root); - while (true) { - StackVarsProcessor stackProc = new StackVarsProcessor(); - stackProc.simplifyStackVars(root, mt, cl); + StackVarsProcessor stackProc = new StackVarsProcessor(); + do { + stackProc.simplifyStackVars(root, mt, cl); varProc.setVarVersions(root); - - if (!new PPandMMHelper().findPPandMM(root)) { - break; - } } + while (new PPandMMHelper().findPPandMM(root)); while (true) { LabelHelper.cleanUpEdges(root); - while (true) { + do { MergeHelper.enhanceLoops(root); - - if (LoopExtractHelper.extractLoops(root)) { - continue; - } - - if (!IfHelper.mergeAllIfs(root)) { - break; - } } + while (LoopExtractHelper.extractLoops(root) || IfHelper.mergeAllIfs(root)); if (DecompilerContext.getOption(IFernflowerPreferences.IDEA_NOT_NULL_ANNOTATION)) { if (IdeaNotNullHelper.removeHardcodedChecks(root, mt)) { SequenceHelper.condenseSequences(root); - - StackVarsProcessor stackProc = new StackVarsProcessor(); stackProc.simplifyStackVars(root, mt, cl); - varProc.setVarVersions(root); } } @@ -178,9 +165,9 @@ public class MethodProcessorRunnable implements Runnable { } // FIXME: !! - // if(!EliminateLoopsHelper.eliminateLoops(root)) { - // break; - // } + //if(!EliminateLoopsHelper.eliminateLoops(root)) { + // break; + //} } ExitHelper.removeRedundantReturns(root);