]> source.dussan.org Git - javassist.git/commitdiff
changed the compiler so that .class will be compiled into ldc.
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Tue, 29 May 2007 09:22:02 +0000 (09:22 +0000)
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Tue, 29 May 2007 09:22:02 +0000 (09:22 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@376 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/bytecode/stackmap/TypeData.java
src/main/javassist/compiler/MemberCodeGen.java

index 6c073702c3cb9c6cb8a7f753965f73c6835f97c4..ee2f296a6eb76352544cba58f104dd6358327e33 100644 (file)
@@ -113,7 +113,7 @@ public abstract class TypeData {
         }
 
         protected void setType(String s, ClassPool cp) throws BadBytecode {
-            throw new BadBytecode("conflict:" + name + " and " + s);
+            throw new BadBytecode("conflict: " + name + " and " + s);
         }
 
         public String toString() { return name; }
index 225844f96c066e69ef9af2af574e1474cd958bb7..bd77b878ac9fe06567c7e0e38ef8322491570e13 100644 (file)
@@ -24,13 +24,13 @@ import java.util.ArrayList;
 /* Code generator methods depending on javassist.* classes.
  */
 public class MemberCodeGen extends CodeGen {
+    public static final int JAVA1_VER = 45;
     public static final int JAVA5_VER = 49;
     public static final int JAVA6_VER = 50;
 
     protected MemberResolver resolver;
     protected CtClass   thisClass;
     protected MethodInfo thisMethod;
-    protected int version;      // the major version of a class file.
 
     protected boolean resultStatic;
 
@@ -39,11 +39,18 @@ public class MemberCodeGen extends CodeGen {
         resolver = new MemberResolver(cp);
         thisClass = cc;
         thisMethod = null;
-        ClassFile cf = cc.getClassFile2();
+    }
+
+    /**
+     * Returns the major version of the class file
+     * targeted by this compilation.
+     */
+    public int getMajorVersion() {
+        ClassFile cf = thisClass.getClassFile2();
         if (cf == null)
-            version = 0;
+            return JAVA1_VER;
         else
-            version = cf.getMajorVersion();
+            return cf.getMajorVersion();
     }
 
     /**
@@ -918,7 +925,10 @@ public class MemberCodeGen extends CodeGen {
     }
 
     protected void atClassObject2(String cname) throws CompileError {
-        super.atClassObject2(cname);
+        if (getMajorVersion() < JAVA5_VER)
+            super.atClassObject2(cname);
+        else
+            bytecode.addLdc(bytecode.getConstPool().addClassInfo(cname));
     }
 
     protected void atFieldPlusPlus(int token, boolean isPost,