]> source.dussan.org Git - javassist.git/commitdiff
fixed a bug in LocalVariableAttribute
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 2 Feb 2005 16:14:34 +0000 (16:14 +0000)
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 2 Feb 2005 16:14:34 +0000 (16:14 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@158 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/CtClass.java
src/main/javassist/bytecode/AnnotationsAttribute.java
src/main/javassist/bytecode/LocalVariableAttribute.java

index 16fab666317f813b6fa498029f859d363dc75be7..2acd57764d03cc5151fe3b1cf6c9518459d8851b 100644 (file)
@@ -44,7 +44,7 @@ public abstract class CtClass {
     /**
      * The version number of this release.
      */
-    public static final String version = "3.0";
+    public static final String version = "3.1";
 
     /**
      * Prints the version number and the copyright notice.
index 42ac8a59b2b279f5050f8f2cbde71e8d9620609d..34c82c4c645e9d3ea8cd266ffc4d97b3d8920426 100644 (file)
@@ -27,13 +27,13 @@ import javassist.bytecode.annotation.*;
  * <code>RuntimeInvisibleAnnotations_attribute</code>.
  *
  * <p>To obtain an AnnotationAttribute object, invoke
- * <code>getAttribute(AnnotationsAttribute.invisibleTag)</code>
+ * <code>getAttribute(AnnotationsAttribute.visibleTag)</code>
  * in <code>ClassFile</code>, <code>MethodInfo</code>,
  * or <code>FieldInfo</code>.  The obtained attribute is a
- * runtime invisible annotations attribute.
+ * runtime visible annotations attribute.
  * If the parameter is
- * <code>AnnotationAttribute.visibleTag</code>, then the obtained
- * attribute is a runtime visible one.
+ * <code>AnnotationAttribute.invisibleTag</code>, then the obtained
+ * attribute is a runtime invisible one.
  *
  * <p>For example,
  *
@@ -41,7 +41,7 @@ import javassist.bytecode.annotation.*;
  * CtMethod m = ... ;
  * MethodInfo minfo = m.getMethodInfo();
  * AnnotationsAttribute attr = (AnnotationsAttribute)
- *         minfo.getAttribute(AnnotationsAttribute.invisibleTag);
+ *         minfo.getAttribute(AnnotationsAttribute.visibleTag);
  * Annotation an = attr.getAnnotation("Author");
  * String s = ((StringMemberValue)a.getMemberValue("name")).getValue();
  * System.out.println("@Author(name=" + s + ")");
@@ -58,7 +58,7 @@ import javassist.bytecode.annotation.*;
  * ClassFile cf = ... ;
  * ConstPool cp = cf.getConstPool();
  * AnnotationsAttribute attr
- *     = new AnnotationsAttribute(cp, AnnotationsAttribute.invisibleTag);
+ *     = new AnnotationsAttribute(cp, AnnotationsAttribute.visibleTag);
  * Annotation a = new Annotation("Author", cp);
  * a.addMemberValue("name", new StringMemberValue("Chiba", cp));
  * attr.setAnnotation(a);
index 6ccdd3211ce5e1a204169ab8b7f231407f6a3923..686fd8d1d0507e071b364782cd5fdde245dbd137 100644 (file)
@@ -38,7 +38,21 @@ public class LocalVariableAttribute extends AttributeInfo {
      * Constructs an empty LocalVariableTable.
      */
     public LocalVariableAttribute(ConstPool cp) {
-        super(cp, tag, new byte[2]);
+        this(cp, tag);
+    }
+
+    /**
+     * Constructs an empty LocalVariableTable.
+     *
+     * @param name      the attribute name.
+     *                  <code>LocalVariableAttribute.tag</code> or
+     *                  <code>LocalVariableAttribute.typeTag</code>.
+     * @see #tag
+     * @see #typeTag
+     * @since 3.1
+     */
+    public LocalVariableAttribute(ConstPool cp, String name) {
+        super(cp, name, new byte[2]);
         ByteArray.write16bit(0, info, 0);
     }
 
@@ -48,8 +62,8 @@ public class LocalVariableAttribute extends AttributeInfo {
         super(cp, n, in);
     }
 
-    private LocalVariableAttribute(ConstPool cp, byte[] i) {
-        super(cp, tag, i);
+    private LocalVariableAttribute(ConstPool cp, String name, byte[] i) {
+        super(cp, name, i);
     }
 
     /**
@@ -222,7 +236,8 @@ public class LocalVariableAttribute extends AttributeInfo {
         byte[] src = get();
         byte[] dest = new byte[src.length];
         ConstPool cp = getConstPool();
-        LocalVariableAttribute attr = new LocalVariableAttribute(newCp, dest);
+        LocalVariableAttribute attr
+            = new LocalVariableAttribute(newCp, getName(), dest);
         int n = ByteArray.readU16bit(src, 0);
         ByteArray.write16bit(n, dest, 0);
         int j = 2;