import jp.igapyon.jcfa.vo.JcfaMethod;
import jp.igapyon.jcfa.vo.JcfaUnit;
import jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable;
+import jp.igapyon.jcfa.vo.operandstack.JcfaOSNode;
import jp.igapyon.jcfa.vo.operandstack.JcfaOSRef;
import org.apache.bcel.Constants;
codes[2]);
jcfaCode.getComment().getCommentList()
.add(JcfaUtil.getConstantMethodRefString(jc, operand));
+
+ jcfaCode.getComment().getCommentList()
+ .add("TODO get args count from signature.");
+ // get n args.
+ final JcfaOSNode osNodeArg0 = jcfaMethod.getFrame()
+ .getOperandStack().pop();
+
+ // final JcfaOSRef osRef = (JcfaOSRef) jcfaMethod.getFrame()
+ // .getOperandStack().pop();
+
+ jcfaCode.getComment().getCommentList()
+ .add("" + osNodeArg0.toString());
+
}
break;
case Constants.LOOKUPSWITCH:
package jp.igapyon.jcfa.vo;
+import java.util.EmptyStackException;
import java.util.Stack;
import jp.igapyon.jcfa.vo.operandstack.JcfaOSNode;
+import jp.igapyon.jcfa.vo.operandstack.JcfaOSRef;
public class JcfaOperandStack {
protected final Stack<JcfaOSNode> operandStack = new Stack<JcfaOSNode>();
}
public JcfaOSNode pop() {
- return operandStack.pop();
+ try {
+ return operandStack.pop();
+ } catch (EmptyStackException ex) {
+ ex.printStackTrace();
+ return new JcfaOSRef();
+ }
}
}
*/
/*
- * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V
+ * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V TODO get args
+ * count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@9046f8
*/
/*
*/
/*
- * 20: invokespecial java/util/ArrayList#<init>()V
+ * 20: invokespecial java/util/ArrayList#<init>()V TODO get args count
+ * from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@2364e5
*/
/*
*/
/*
- * 31: invokespecial java/util/ArrayList#<init>()V
+ * 31: invokespecial java/util/ArrayList#<init>()V TODO get args count
+ * from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1b51748
*/
/*
/*
* 6: invokevirtual
- * java/lang/String#split(Ljava/lang/String;)[Ljava/lang/String;
+ * java/lang/String#split(Ljava/lang/String;)[Ljava/lang/String; TODO
+ * get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@ba2e7
*/
/*
*/
/*
- * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V
+ * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V TODO get args
+ * count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1e6c23c
*/
/*
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@83d070
*/
/*
*/
/*
- * 14: invokespecial java/util/ArrayList#<init>()V
+ * 14: invokespecial java/util/ArrayList#<init>()V TODO get args count
+ * from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1e9749c
*/
/*
*/
/*
- * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V
+ * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V TODO get args
+ * count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@a460f0
*/
/* 4: return */
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@74c252
*/
/*
*/
/*
- * 9: invokespecial java/util/ArrayList#<init>()V
+ * 9: invokespecial java/util/ArrayList#<init>()V TODO get args count
+ * from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@181ab44
*/
/*
*/
/*
- * 20: invokespecial jp/igapyon/jcfa/vo/JcfaOperandStack#<init>()V
+ * 20: invokespecial jp/igapyon/jcfa/vo/JcfaOperandStack#<init>()V TODO
+ * get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@132a3e
*/
/*
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@48b1ca
*/
/* 4: return */
*/
/*
- * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V
+ * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V TODO get args
+ * count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1d8623b
*/
/*
*/
/*
- * 9: invokespecial java/util/ArrayList#<init>()V
+ * 9: invokespecial java/util/ArrayList#<init>()V TODO get args count
+ * from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@119510f
*/
/*
*/
/*
- * 20: invokespecial java/util/ArrayList#<init>()V
+ * 20: invokespecial java/util/ArrayList#<init>()V TODO get args count
+ * from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@118dc75
*/
/*
*/
/*
- * 31: invokespecial jp/igapyon/jcfa/vo/JcfaFrame#<init>()V
+ * 31: invokespecial jp/igapyon/jcfa/vo/JcfaFrame#<init>()V TODO get
+ * args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@131a5af
*/
/*
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@3a4d82
*/
/*
*/
/*
- * 9: invokespecial jp/igapyon/jcfa/vo/JcfaComment#<init>()V
+ * 9: invokespecial jp/igapyon/jcfa/vo/JcfaComment#<init>()V TODO get
+ * args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1b6aea4
*/
/*
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@5eae58
*/
/*
*/
/*
- * 9: invokespecial java/util/Stack#<init>()V
+ * 9: invokespecial java/util/Stack#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@841c1
*/
/*
/*
* 5: invokevirtual
- * java/util/Stack#push(Ljava/lang/Object;)Ljava/lang/Object;
+ * java/util/Stack#push(Ljava/lang/Object;)Ljava/lang/Object; TODO get
+ * args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@15268b
*/
/*
*/
/*
- * 4: invokevirtual java/util/Stack#pop()Ljava/lang/Object;
+ * 4: invokevirtual java/util/Stack#pop()Ljava/lang/Object; TODO get
+ * args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@9598c0
*/
/*
/*
* 10: areturn TODO unsupported opcode
*/
+
+ /*
+ * 11: astore_1 TODO unsupported opcode
+ */
+
+ /*
+ * 12: aload_1 TODO unsupported opcode
+ */
+
+ /*
+ * 13: invokevirtual java/util/EmptyStackException#printStackTrace()V
+ * TODO get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSRef@15f73e9
+ */
+
+ /*
+ * 16: new TODO unsupported opcode
+ */
+
+ /*
+ * 19: dup TODO unsupported opcode
+ */
+
+ /*
+ * 20: invokespecial jp/igapyon/jcfa/vo/operandstack/JcfaOSRef#<init>()V
+ * TODO get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSRef@1b2d71d
+ */
+
+ /*
+ * 23: areturn TODO unsupported opcode
+ */
}
}
\ No newline at end of file
*/
/*
- * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V
+ * 1: invokespecial jp/igapyon/jcfa/vo/JcfaNode#<init>()V TODO get args
+ * count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@da1a1f
*/
/*
*/
/*
- * 9: invokespecial java/util/ArrayList#<init>()V
+ * 9: invokespecial java/util/ArrayList#<init>()V TODO get args count
+ * from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@e9055b
*/
/*
/*
* 1: invokespecial jp/igapyon/jcfa/vo/operandstack/JcfaOSNode#<init>()V
+ * TODO get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1dd0b6f
*/
/* 4: return */
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1f3f6ff
*/
/* 4: return */
/*
* 1: invokespecial jp/igapyon/jcfa/vo/operandstack/JcfaOSNode#<init>()V
+ * TODO get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@119a664
*/
/* 4: return */
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@c9560e
*/
/* 4: return */
/*
* 5: invokevirtual java/io/PrintStream#println(Ljava/lang/String;)V
+ * TODO get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSRef@30d77d
*/
/* 8: return */
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1ba0e0e
*/
/*
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@11c8643
*/
/*
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@22b7f8
*/
/* 4: return */
/*
* 5: invokevirtual java/io/PrintStream#println(Ljava/lang/String;)V
+ * TODO get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSRef@15c0729
*/
/* 8: return */
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@9d5bae
*/
/* 4: return */
*/
/*
- * 9: invokevirtual java/io/PrintStream#println(I)V
+ * 9: invokevirtual java/io/PrintStream#println(I)V TODO get args count
+ * from signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSRef@ee25db
*/
/*
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature. jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@8df070
*/
/* 4: return */
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1ef1258
*/
/* 4: return */
*/
/*
- * 1: invokespecial java/lang/Object#<init>()V
+ * 1: invokespecial java/lang/Object#<init>()V TODO get args count from
+ * signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSLocalVariable@1b2d8e0
*/
/* 4: return */
/*
* 6: invokespecial
- * java/lang/IllegalArgumentException#<init>(Ljava/lang/String;)V
+ * java/lang/IllegalArgumentException#<init>(Ljava/lang/String;)V TODO
+ * get args count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSRef@bc8928
*/
/*
/*
* 12: invokevirtual
- * java/lang/IllegalArgumentException#printStackTrace()V
+ * java/lang/IllegalArgumentException#printStackTrace()V TODO get args
+ * count from signature.
+ * jp.igapyon.jcfa.vo.operandstack.JcfaOSRef@1d0bf38
*/
/* 15: return */