Thanks for your help Peter.

I tested the PR and it works for both the asm5.2 and the asm7.2 branches. I
also compare the output from the original asm5.0.1 with the new ones
(ams5.2-asm7.2) and it was the same.

I also tested using ASM API v6 & v7, the output was the same and I worked
without problems my daily projects. I will prepare the PR today.

Jose Contreras

El jue., 7 nov. 2019 a las 3:58, Peter Hull (<peterhul...@gmail.com>)
escribió:

> On Wed, 6 Nov 2019 at 22:24, Jose Ch <pepnes...@gmail.com> wrote:
> >
> > I will test the PR and do as you suggest Pete.
> For what it's worth my implementation was a bit different:
>     private static class CtorDelVisitor extends AnnotationVisitor {
>         int[] indices;
>         /**
>          * Constructs a new {@link AnnotationVisitor}.
>          *
>          * @param api the ASM API version implemented by this visitor. Must
> be one of {@link
>          *     Opcodes#ASM4}, {@link Opcodes#ASM5}, {@link Opcodes#ASM6} or
> {@link Opcodes#ASM7}.
>          */
>         public CtorDelVisitor(int api) {
>             super(api);
>         }
>         @Override
>         public AnnotationVisitor visitArray(String name) {
>             if ("delegateParams".equals(name)) {  // NOI18N
>                 return new AnnotationVisitor(api) {
>                     List<Integer> list = new ArrayList<>();
>                     @Override
>                     public void visit(String name, Object value) {
>                         list.add((Integer) value);
>                     }
>                     @Override
>                     public void visitEnd() {
>                         int[] indices = new int[list.size()];
>                         for (int i = 0; i < indices.length; ++i) {
>                             indices[i] = list.get(i);
>                         }
>                         CtorDelVisitor.this.indices = indices;
>                     }
>                 };
>             } else {
>                 return super.visitArray(name); // Not interested
>             }
>         }
>     }
> I guess Svata's will be more efficient.
>
> It's a bit frustrating that the AnnotationNode forces us to visit each
> array element in turn when all we need is the complete list, but I think
> there's no way around that. Visitor pattern makes my head spin, it always
> seems inside-out to me.
>
> Pete
>

Reply via email to