From 48fb8a75b308777ebfcdc5f46074dda278f4a8e1 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 15 Jul 1999 16:00:26 +0000 Subject: [PATCH] ConstructorOperator removed, InvokeOperator handles it all. git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1083 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/expr/Makefile.am | 1 - jode/jode/flow/SpecialBlock.java | 4 +--- jode/jode/flow/TryBlock.java | 13 ++++++------- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/jode/jode/expr/Makefile.am b/jode/jode/expr/Makefile.am index b9c03e4..c879a29 100644 --- a/jode/jode/expr/Makefile.am +++ b/jode/jode/expr/Makefile.am @@ -22,7 +22,6 @@ MY_JAVA_FILES = \ CompareUnaryOperator.java \ ConstOperator.java \ ConstantArrayOperator.java \ - ConstructorOperator.java \ ConvertOperator.java \ Expression.java \ GetFieldOperator.java \ diff --git a/jode/jode/flow/SpecialBlock.java b/jode/jode/flow/SpecialBlock.java index 6b24184..67e2c3e 100644 --- a/jode/jode/flow/SpecialBlock.java +++ b/jode/jode/flow/SpecialBlock.java @@ -175,8 +175,7 @@ public class SpecialBlock extends StructuredBlock { if (instr.getType().stackSize() == count) { StructuredBlock newBlock; - if (instr instanceof InvokeOperator - || instr instanceof ConstructorOperator) { + if (instr instanceof InvokeOperator) { Expression newExpr = new PopOperator(instr.getType()).addOperand(instr); prev.setInstruction(newExpr); @@ -206,4 +205,3 @@ public class SpecialBlock extends StructuredBlock { return false; } } - diff --git a/jode/jode/flow/TryBlock.java b/jode/jode/flow/TryBlock.java index 912848c..d8e10f3 100644 --- a/jode/jode/flow/TryBlock.java +++ b/jode/jode/flow/TryBlock.java @@ -22,7 +22,6 @@ import jode.decompiler.TabbedPrintWriter; import jode.type.*; import jode.expr.Expression; import jode.expr.InvokeOperator; -import jode.expr.ConstructorOperator; import jode.expr.LocalLoadOperator; /** @@ -187,17 +186,17 @@ public class TryBlock extends StructuredBlock { ((ThrowBlock) catchBlock.catchBlock).getInstruction(); if (throwExpr.getFreeOperandCount() != 0 - || !(throwExpr instanceof ConstructorOperator)) + || !(throwExpr instanceof InvokeOperator)) return false; - ConstructorOperator throwOp = (ConstructorOperator) throwExpr; - - if (!(throwOp.getClassType() - .equals(Type.tClass("java.lang.InternalError"))) + InvokeOperator throwOp = (InvokeOperator) throwExpr; + if (!throwOp.isConstructor() + || !(throwOp.getClassType() + .equals(Type.tClass("java.lang.InternalError"))) || throwOp.getMethodType().getParameterTypes().length != 1) return false; - Expression getMethodExpr = throwOp.getSubExpressions()[0]; + Expression getMethodExpr = throwOp.getSubExpressions()[1]; if (!(getMethodExpr instanceof InvokeOperator)) return false;