OSDN Git Service

save
authoriga <tosiki.iga@nifty.ne.jp>
Thu, 3 Apr 2014 11:55:03 +0000 (20:55 +0900)
committeriga <tosiki.iga@nifty.ne.jp>
Thu, 3 Apr 2014 11:55:03 +0000 (20:55 +0900)
23 files changed:
jcfa/src/jp/igapyon/jcfa/util/JcfaWriteUtil.java
jcfa/src/jp/igapyon/jcfa/vo/JcfaOperandStack.java
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaClass.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaCode.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaComment.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaField.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaFrame.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaLocalVariable.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaMethod.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaNode.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaOperandStack.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/JcfaUnit.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/operandstack/JcfaOSLocalVariable.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/operandstack/JcfaOSNode.jcfa
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/operandstack/JcfaOSRef.jcfa
jcfa/testJavaClass/output/test/TestJavaClass001.jcfa
jcfa/testJavaClass/output/test/TestJavaClass002.jcfa
jcfa/testJavaClass/output/test/TestJavaClass003.jcfa
jcfa/testJavaClass/output/test/TestJavaClass011.jcfa
jcfa/testJavaClass/output/test/TestJavaClass021.jcfa
jcfa/testJavaClass/output/test/TestJavaClass031.jcfa
jcfa/testJavaClass/output/test/TestJavaClass032.jcfa
jcfa/testJavaClass/output/test/TestJavaClass041.jcfa

index 089d8b1..4fc730b 100644 (file)
@@ -12,6 +12,7 @@ import jp.igapyon.jcfa.vo.JcfaField;
 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;
@@ -173,6 +174,19 @@ public class JcfaWriteUtil {
                                                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:
index 58bfec0..d0c1ff5 100644 (file)
@@ -1,8 +1,10 @@
 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>();
@@ -12,6 +14,11 @@ public class JcfaOperandStack {
        }
 
        public JcfaOSNode pop() {
-               return operandStack.pop();
+               try {
+                       return operandStack.pop();
+               } catch (EmptyStackException ex) {
+                       ex.printStackTrace();
+                       return new JcfaOSRef();
+               }
        }
 }
index 444d9c4..c64c170 100644 (file)
@@ -22,7 +22,9 @@ public class JcfaClass extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -62,7 +64,9 @@ public class JcfaClass extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -82,7 +86,9 @@ public class JcfaClass extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -153,7 +159,9 @@ public class JcfaClass extends jp.igapyon.jcfa.vo.JcfaNode {
 
                /*
                 * 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
                 */
 
                /*
index 793155b..77f7801 100644 (file)
@@ -16,7 +16,9 @@ public class JcfaCode extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
index 8dcfa08..90e665a 100644 (file)
@@ -14,7 +14,8 @@ public class JcfaComment {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -42,7 +43,9 @@ public class JcfaComment {
                 */
 
                /*
-                * 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
                 */
 
                /*
index 12734a3..d2f7ee8 100644 (file)
@@ -18,7 +18,9 @@ public class JcfaField extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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 */
index f160ba9..180abfb 100644 (file)
@@ -14,7 +14,8 @@ public class JcfaFrame {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -30,7 +31,9 @@ public class JcfaFrame {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -50,7 +53,9 @@ public class JcfaFrame {
                 */
 
                /*
-                * 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
                 */
 
                /*
index 7d2d18f..009bc9d 100644 (file)
@@ -14,7 +14,8 @@ public class JcfaLocalVariable {
                 */
 
                /*
-                * 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 */
index 099814b..923bccb 100644 (file)
@@ -22,7 +22,9 @@ public class JcfaMethod extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -38,7 +40,9 @@ public class JcfaMethod extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -58,7 +62,9 @@ public class JcfaMethod extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -78,7 +84,9 @@ public class JcfaMethod extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
index dd75aad..2925d15 100644 (file)
@@ -12,7 +12,8 @@ public class JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -28,7 +29,9 @@ public class JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
index 06763c6..42aef38 100644 (file)
@@ -12,7 +12,8 @@ public class JcfaOperandStack {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -28,7 +29,8 @@ public class JcfaOperandStack {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -56,7 +58,9 @@ public class JcfaOperandStack {
 
                /*
                 * 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
                 */
 
                /*
@@ -77,7 +81,9 @@ public class JcfaOperandStack {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -87,5 +93,37 @@ public class JcfaOperandStack {
                /*
                 * 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
index a7fd85c..26eb07f 100644 (file)
@@ -16,7 +16,9 @@ public class JcfaUnit extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
@@ -32,7 +34,9 @@ public class JcfaUnit extends jp.igapyon.jcfa.vo.JcfaNode {
                 */
 
                /*
-                * 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
                 */
 
                /*
index 0f2fba5..eaa40c5 100644 (file)
@@ -14,6 +14,8 @@ public class JcfaOSLocalVariable extends
 
                /*
                 * 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 */
index 3383f67..4a7f320 100644 (file)
@@ -9,7 +9,9 @@ public class JcfaOSNode {
                 */
 
                /*
-                * 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 */
index d09d859..c82772e 100644 (file)
@@ -13,6 +13,8 @@ public class JcfaOSRef extends jp.igapyon.jcfa.vo.operandstack.JcfaOSNode {
 
                /*
                 * 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 */
index aa581ef..605190e 100644 (file)
@@ -9,7 +9,8 @@ public class TestJavaClass001 {
                 */
 
                /*
-                * 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 */
@@ -29,6 +30,8 @@ public class TestJavaClass001 {
 
                /*
                 * 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 */
index 8ca50f4..8bc0924 100644 (file)
@@ -19,7 +19,9 @@ public class TestJavaClass002 {
                 */
 
                /*
-                * 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
                 */
 
                /*
index f1a19d3..8d75ff0 100644 (file)
@@ -24,7 +24,9 @@ public class TestJavaClass003 {
                 */
 
                /*
-                * 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
                 */
 
                /*
index 8c9bd96..3a35fdd 100644 (file)
@@ -9,7 +9,8 @@ public class TestJavaClass011 {
                 */
 
                /*
-                * 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 */
@@ -27,6 +28,8 @@ public class TestJavaClass011 {
 
                /*
                 * 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 */
index be73d9b..b586138 100644 (file)
@@ -9,7 +9,8 @@ public class TestJavaClass021 {
                 */
 
                /*
-                * 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 */
@@ -38,7 +39,8 @@ public class TestJavaClass021 {
                 */
 
                /*
-                * 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
                 */
 
                /*
index 8086b43..78d0af4 100644 (file)
@@ -9,7 +9,8 @@ public class TestJavaClass031 {
                 */
 
                /*
-                * 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 */
index 3543899..8941933 100644 (file)
@@ -9,7 +9,9 @@ public class TestJavaClass032 {
                 */
 
                /*
-                * 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 */
index 1c41828..b98aa12 100644 (file)
@@ -9,7 +9,9 @@ public class TestJavaClass041 {
                 */
 
                /*
-                * 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 */
@@ -31,7 +33,9 @@ public class TestJavaClass041 {
 
                /*
                 * 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
                 */
 
                /*
@@ -48,7 +52,9 @@ public class TestJavaClass041 {
 
                /*
                 * 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 */