From 4e93ed861fc6dc91c330e1cecc870d55e6b68248 Mon Sep 17 00:00:00 2001 From: jochen Date: Fri, 12 Mar 1999 19:26:02 +0000 Subject: [PATCH] toString added. addOperand git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@398 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/flow/VariableStack.java | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/jode/jode/flow/VariableStack.java b/jode/jode/flow/VariableStack.java index cfa4ee3..98c58f7 100644 --- a/jode/jode/flow/VariableStack.java +++ b/jode/jode/flow/VariableStack.java @@ -80,24 +80,12 @@ public class VariableStack { public Expression mergeIntoExpression(Expression expr, VariableSet used) { /* assert expr.getOperandCount() == stackMap.length */ - ComplexExpression parent = null; - Expression inner = expr; - while (inner instanceof ComplexExpression) { - parent = (ComplexExpression)inner; - inner = parent.getSubExpressions()[0]; - } - Expression[] loads = new Expression[stackMap.length]; - for (int i=0; i< stackMap.length; i++) { + for (int i = stackMap.length-1; i >= 0; i--) { if (!used.contains(stackMap[i])) used.addElement(stackMap[i]); - loads[i] = new LocalLoadOperator(stackMap[i].getType(), - stackMap[i]); + expr = expr.addOperand + (new LocalLoadOperator(stackMap[i].getType(), stackMap[i])); } - Expression newExpr = new ComplexExpression((Operator)inner, loads); - if (parent != null) - parent.setSubExpressions(0, newExpr); - else - expr = newExpr; return expr; } @@ -153,4 +141,14 @@ public class VariableStack { } else throw new jode.AssertError("Unknown SpecialBlock"); } + + public String toString() { + StringBuffer result = new StringBuffer("["); + for (int i=0; i < stackMap.length; i++) { + if (i>0) + result.append(", "); + result.append(stackMap[i].getName()); + } + return result.append("]").toString(); + } }