changeset 112:d29d8ebc2c1a

Daneel verifier should use a basic verifier instead of the simple verifier i.e. not try to compute supertypes. Also Register.toString() is not able to display boolean/byte/short/char
author forax
date Fri, 01 Apr 2011 23:50:53 +0200
parents 43109f72e569
children 4dfa6db13f7c
files src/main/java/org/icedrobot/daneel/loader/Verifier.java src/main/java/org/icedrobot/daneel/rewriter/Register.java
diffstat 2 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/org/icedrobot/daneel/loader/Verifier.java	Fri Apr 01 23:39:16 2011 +0200
+++ b/src/main/java/org/icedrobot/daneel/loader/Verifier.java	Fri Apr 01 23:50:53 2011 +0200
@@ -95,6 +95,7 @@
 import org.objectweb.asm.tree.MethodNode;
 import org.objectweb.asm.tree.TryCatchBlockNode;
 import org.objectweb.asm.tree.analysis.Analyzer;
+import org.objectweb.asm.tree.analysis.BasicVerifier;
 import org.objectweb.asm.tree.analysis.Frame;
 import org.objectweb.asm.tree.analysis.SimpleVerifier;
 import org.objectweb.asm.util.CheckClassAdapter;
@@ -122,13 +123,14 @@
         String internalName = node.name;
         for (int i = 0; i < methods.size(); i++) {
             MethodNode method = methods.get(i);
-            SimpleVerifier verifier = new SimpleVerifier(
+            /*SimpleVerifier verifier = new SimpleVerifier(
                     Type.getObjectType(internalName),
                     superType,
                     Arrays.asList(interfazes),
-                    (node.access & ~Opcodes.ACC_INTERFACE) != 0);
+                    (node.access & ~Opcodes.ACC_INTERFACE) != 0);*/
+            BasicVerifier verifier = new BasicVerifier();
             Analyzer analyzer = new Analyzer(verifier);
-            verifier.setClassLoader(classloader);
+            //verifier.setClassLoader(classloader);
 
             try {
                 analyzer.analyze(internalName, method);
--- a/src/main/java/org/icedrobot/daneel/rewriter/Register.java	Fri Apr 01 23:39:16 2011 +0200
+++ b/src/main/java/org/icedrobot/daneel/rewriter/Register.java	Fri Apr 01 23:50:53 2011 +0200
@@ -321,6 +321,14 @@
             return "long";
         case DOUBLE_TYPE:
             return "double";
+        case BOOLEAN_TYPE:
+            return "bool";
+        case BYTE_TYPE:
+            return "byte";
+        case SHORT_TYPE:
+            return "short";
+        case CHAR_TYPE:
+            return "char";
         case U32_TYPE:
             return "u32";
         case U64_TYPE: