From 51480f5e92f5ee5d3d7faf233afb6ae48c910fe5 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 11 Mar 1999 22:53:13 +0000 Subject: [PATCH] few fixes of mapStackToLocal git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@374 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/flow/FlowBlock.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/jode/jode/flow/FlowBlock.java b/jode/jode/flow/FlowBlock.java index 2f95937..a84b652 100644 --- a/jode/jode/flow/FlowBlock.java +++ b/jode/jode/flow/FlowBlock.java @@ -1416,7 +1416,8 @@ public class FlowBlock { */ public final boolean mapStackToLocal() { try { - return mapStackToLocal(VariableStack.EMPTY); + mapStackToLocal(VariableStack.EMPTY); + return true; } catch (RuntimeException ex) { Decompiler.err.println("Can't resolve all PUSHes, " +"this is probably illegal bytecode:"); @@ -1433,18 +1434,13 @@ public class FlowBlock { * @return false if the bytecode isn't correct and stack mapping * didn't worked. */ - public boolean mapStackToLocal(VariableStack initialStack) { + public void mapStackToLocal(VariableStack initialStack) { if (stackMap != null) { stackMap.merge(initialStack); } else stackMap = initialStack; - if (block.mapStackToLocal(initialStack) == null) { - // bytecode is not correct! Give up! - stackMap = null; - return false; - } - + block.mapStackToLocal(initialStack); Enumeration enum = successors.elements(); while (enum.hasMoreElements()) { Jump jumps = (Jump) enum.nextElement(); @@ -1455,10 +1451,8 @@ public class FlowBlock { stack = VariableStack.merge(stack, jumps.stackMap); } if (succ.stackMap == null) - if (!succ.mapStackToLocal(stack)) - return false; + succ.mapStackToLocal(stack); } - return true; } public void removePush() {