Doesn't work and I don't know why
This commit is contained in:
@@ -39,7 +39,7 @@ public abstract class Instruction
|
||||
|
||||
public String getDesc(Frame frame)
|
||||
{
|
||||
return null;
|
||||
return type.getName();
|
||||
}
|
||||
|
||||
protected void addJump(int offset)
|
||||
|
||||
@@ -17,7 +17,6 @@ public class Return extends Instruction
|
||||
@Override
|
||||
public void execute(Frame e)
|
||||
{
|
||||
// XXX exceptions?
|
||||
Object ret = e.getStack().pop();
|
||||
e.getPath().returnFrame(this, ret);
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ public class Execution
|
||||
ObjectInstance object = p.createObject(instance);
|
||||
|
||||
p.invoke(method, object);
|
||||
|
||||
//process();
|
||||
}
|
||||
|
||||
public void addPath(Path p)
|
||||
|
||||
@@ -67,17 +67,14 @@ public class Frame
|
||||
|
||||
Instruction i = ins.findInstruction(pc);
|
||||
|
||||
String desc = i.getDesc(this);
|
||||
if (desc != null)
|
||||
System.out.println(desc);
|
||||
|
||||
try
|
||||
{
|
||||
i.execute(this);
|
||||
System.out.println(i.getDesc(this));
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
System.err.println("Error executing instruction in " + method.getName() + " " + method.getDescriptor() + " in class " + method.getMethods().getClassFile().getName() + " at pc " + pc);
|
||||
System.err.println("Error executing instruction " + i.getDesc(this) + " in " + method.getName() + " " + method.getDescriptor() + " in class " + method.getMethods().getClassFile().getName() + " at pc " + pc);
|
||||
System.err.println("Frame stack (grows downward):");
|
||||
while (stack.getSize() > 0)
|
||||
{
|
||||
|
||||
@@ -97,7 +97,13 @@ public class Path
|
||||
for (int i = 0; i < args.length; ++i)
|
||||
vars.set(i, args[i]);
|
||||
frames.push(f);
|
||||
f.execute();
|
||||
|
||||
while (!frames.isEmpty())
|
||||
{
|
||||
f = frames.peek();
|
||||
f.execute();
|
||||
frames.pop();
|
||||
}
|
||||
}
|
||||
|
||||
public void returnFrame(Instruction i, Object value)
|
||||
|
||||
Reference in New Issue
Block a user