From d5131c70be7215339e14e42ef87bcadad4e5a39d Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 26 Sep 1998 09:53:09 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@37 379699f6-c40d-0410-875b-85095c16579e --- .../decompiler/LocalVariableRangeList.java | 4 +- jode/jode/decompiler/LocalVariableTable.java | 2 +- jode/jode/flow/CatchBlock.java | 60 +++++++++--- jode/jode/flow/FlowBlock.java | 9 +- jode/jode/flow/InstructionBlock.java | 37 +++++++- jode/jode/flow/RawTryCatchBlock.java | 54 +++++------ jode/jode/flow/StructuredBlock.java | 24 +++++ jode/jode/flow/jode.ppl | 94 ++++++++++++++++++- jode/jode/type/ClassRangeType.java | 8 +- jode/jode/type/MyType.java | 5 +- 10 files changed, 242 insertions(+), 55 deletions(-) diff --git a/jode/jode/decompiler/LocalVariableRangeList.java b/jode/jode/decompiler/LocalVariableRangeList.java index 42703c1..253fe40 100644 --- a/jode/jode/decompiler/LocalVariableRangeList.java +++ b/jode/jode/decompiler/LocalVariableRangeList.java @@ -62,9 +62,9 @@ public class LocalVariableRangeList implements LocalVariable { private LocalInfo find(int addr) { MyLocalInfo li = list; - while (li != null && addr > li.start+li.length) + while (li != null && addr >= li.start+li.length) li = li.next; - if (li == null || li.start > addr) { + if (li == null || li.start > addr+2/*XXX*/) { LocalInfo temp = new LocalInfo(slot); return temp; } diff --git a/jode/jode/decompiler/LocalVariableTable.java b/jode/jode/decompiler/LocalVariableTable.java index 93d8905..3438c5f 100644 --- a/jode/jode/decompiler/LocalVariableTable.java +++ b/jode/jode/decompiler/LocalVariableTable.java @@ -43,7 +43,7 @@ public class LocalVariableTable { { int count = stream.readUnsignedShort(); for (int i=0; i" + string; -// else -// return bottomType.typeString(string, flag1, flag2); + else if (bottomType != null) + return bottomType.typeString(string, flag1, flag2); + else + return tObject.typeString(string, flag1, flag2); } // public String toString() diff --git a/jode/jode/type/MyType.java b/jode/jode/type/MyType.java index 6a376bd..07ac1d6 100644 --- a/jode/jode/type/MyType.java +++ b/jode/jode/type/MyType.java @@ -59,8 +59,11 @@ public class MyType extends Type { public static Type tSuperType(Type type) { int typeCode = type.getTypeCode(); - if (typeCode == 9 || typeCode == 10 || typeCode == 103) + if (typeCode == 9 || typeCode == 10) return new ClassRangeType(tObject, type); + else if (typeCode == 103) + return (((ClassRangeType)type).topType == null + ? tUnknown : new ClassRangeType(tObject, null)); else return type; }