OSDN Git Service

save
authoriga <tosiki.iga@nifty.ne.jp>
Thu, 3 Apr 2014 11:45:24 +0000 (20:45 +0900)
committeriga <tosiki.iga@nifty.ne.jp>
Thu, 3 Apr 2014 11:45:24 +0000 (20:45 +0900)
jcfa/src.generated/jp/igapyon/jcfa/JcfaVersionConstants.java
jcfa/src/jp/igapyon/jcfa/util/JcfaWriteUtil.java
jcfa/src/jp/igapyon/jcfa/vo/operandstack/JcfaOSRef.java [moved from jcfa/src/jp/igapyon/jcfa/vo/operandstack/JcfaOSClass.java with 81% similarity]
jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/operandstack/JcfaOSRef.jcfa [new file with mode: 0644]

index 9610575..585a409 100644 (file)
@@ -3,7 +3,7 @@ package jp.igapyon.jcfa;
 /* This source file is generated by JavaClassFileAnalyzer. */
 /* Do not modify this source file. */
 public class JcfaVersionConstants {
-       public static final String VERSION = "I201404030744";
+       public static final String VERSION = "I201404032042";
 
        public static final String getVersion() {
                return VERSION;
index e8ca4f1..089d8b1 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.JcfaOSRef;
 
 import org.apache.bcel.Constants;
 import org.apache.bcel.classfile.JavaClass;
@@ -152,10 +153,13 @@ public class JcfaWriteUtil {
                                break;
                        }
                        case Constants.GETSTATIC: {
-                               jcfaCode.getComment()
-                                               .getCommentList()
-                                               .add(JcfaUtil.getConstantFieldrefString(jc, codes[1],
-                                                               codes[2]));
+                               final JcfaOSRef osRef = new JcfaOSRef();
+                               jcfaMethod.getFrame().getOperandStack().push(osRef);
+                               osRef.setClassName(JcfaUtil.getConstantFieldrefString(jc,
+                                               codes[1], codes[2]));
+
+                               jcfaCode.getComment().getCommentList()
+                                               .add(osRef.getClassName());
                                break;
                        }
                        case Constants.LDC: {
@@ -1,6 +1,6 @@
 package jp.igapyon.jcfa.vo.operandstack;
 
-public class JcfaOSClass extends JcfaOSNode {
+public class JcfaOSRef extends JcfaOSNode {
        protected String className;
 
        public String getClassName() {
diff --git a/jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/operandstack/JcfaOSRef.jcfa b/jcfa/testJavaClass/output/jp/igapyon/jcfa/vo/operandstack/JcfaOSRef.jcfa
new file mode 100644 (file)
index 0000000..d09d859
--- /dev/null
@@ -0,0 +1,54 @@
+package jp.igapyon.jcfa.vo.operandstack;
+
+/** TODO import func. is missing. */
+public class JcfaOSRef extends jp.igapyon.jcfa.vo.operandstack.JcfaOSNode {
+       /**  */
+       protected java.lang.String className;
+
+       /** Constructor. */
+       public JcfaOSRef() {
+               /*
+                * 0: aload_0 this
+                */
+
+               /*
+                * 1: invokespecial jp/igapyon/jcfa/vo/operandstack/JcfaOSNode#<init>()V
+                */
+
+               /* 4: return */
+       }
+
+       /** Method. */
+       public java.lang.String getClassName() {
+               /*
+                * 0: aload_0 this
+                */
+
+               /*
+                * 1: getfield TODO unsupported opcode
+                */
+
+               /*
+                * 4: areturn TODO unsupported opcode
+                */
+       }
+
+       /**
+        * Method. java.lang.String
+        */
+       public void setClassName(java.lang.String arg0) {
+               /*
+                * 0: aload_0 this
+                */
+
+               /*
+                * 1: aload_1 TODO unsupported opcode
+                */
+
+               /*
+                * 2: putfield TODO unsupported opcode
+                */
+
+               /* 5: return */
+       }
+}
\ No newline at end of file