]> source.dussan.org Git - javassist.git/commitdiff
Need to also keep the parameter annotations after a prune.
authoradrian <adrian@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 15 Mar 2006 17:59:07 +0000 (17:59 +0000)
committeradrian <adrian@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 15 Mar 2006 17:59:07 +0000 (17:59 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@260 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/bytecode/MethodInfo.java

index 10c77be0c23f80d01c84b8b92c8e73efd4dac805..87b8e76a752455196ea5761e6535592542df6e2a 100644 (file)
@@ -126,33 +126,48 @@ public final class MethodInfo {
 
     void prune(ConstPool cp) {
         LinkedList newAttributes = new LinkedList();
+
         AttributeInfo invisibleAnnotations
             = getAttribute(AnnotationsAttribute.invisibleTag);
         if (invisibleAnnotations != null) {
             invisibleAnnotations = invisibleAnnotations.copy(cp, null);
             newAttributes.add(invisibleAnnotations);
-         }
+        }
 
         AttributeInfo visibleAnnotations
             = getAttribute(AnnotationsAttribute.visibleTag);
         if (visibleAnnotations != null) {
             visibleAnnotations = visibleAnnotations.copy(cp, null);
             newAttributes.add(visibleAnnotations);
-         }
+        }
+
+        AttributeInfo parameterInvisibleAnnotations
+            = getAttribute(ParameterAnnotationsAttribute.invisibleTag);
+        if (parameterInvisibleAnnotations != null) {
+            parameterInvisibleAnnotations = parameterInvisibleAnnotations.copy(cp, null);
+            newAttributes.add(parameterInvisibleAnnotations);
+        }
 
-         AnnotationDefaultAttribute defaultAttribute
-              = (AnnotationDefaultAttribute) getAttribute(AnnotationDefaultAttribute.tag);
-         if (defaultAttribute != null)
-             newAttributes.add(defaultAttribute);
+        AttributeInfo parameterVisibleAnnotations
+            = getAttribute(ParameterAnnotationsAttribute.visibleTag);
+        if (parameterVisibleAnnotations != null) {
+            parameterVisibleAnnotations = parameterVisibleAnnotations.copy(cp, null);
+            newAttributes.add(parameterVisibleAnnotations);
+        }
+
+        AnnotationDefaultAttribute defaultAttribute
+             = (AnnotationDefaultAttribute) getAttribute(AnnotationDefaultAttribute.tag);
+        if (defaultAttribute != null)
+            newAttributes.add(defaultAttribute);
 
-         ExceptionsAttribute ea = getExceptionsAttribute();
-         if (ea != null)
-             newAttributes.add(ea);
+        ExceptionsAttribute ea = getExceptionsAttribute();
+        if (ea != null)
+            newAttributes.add(ea);
 
-         attribute = newAttributes;
-         name = cp.addUtf8Info(getName());
-         descriptor = cp.addUtf8Info(getDescriptor());
-         constPool = cp;
+        attribute = newAttributes;
+        name = cp.addUtf8Info(getName());
+        descriptor = cp.addUtf8Info(getDescriptor());
+        constPool = cp;
     }
 
     /**