|
43 | 43 | import soot.tagkit.AnnotationDefaultTag;
|
44 | 44 | import soot.tagkit.AnnotationTag;
|
45 | 45 | import soot.tagkit.VisibilityAnnotationTag;
|
46 |
| -import soot.tagkit.VisibilityParameterAnnotationTag; |
47 | 46 | import soot.tagkit.VisibilityLocalVariableAnnotationTag;
|
| 47 | +import soot.tagkit.VisibilityParameterAnnotationTag; |
48 | 48 |
|
49 | 49 | /**
|
50 | 50 | * Soot method builder.
|
@@ -96,30 +96,30 @@ public void visitAttribute(Attribute attr) {
|
96 | 96 | }
|
97 | 97 |
|
98 | 98 | @Override
|
99 |
| - public AnnotationVisitor visitLocalVariableAnnotation(final int typeRef, final TypePath typePath, |
100 |
| - final Label[] start, final Label[] end, final int[] index, final String descriptor, final boolean visible) { |
101 |
| - final VisibilityAnnotationTag vat = new VisibilityAnnotationTag( |
102 |
| - visible ? AnnotationConstants.RUNTIME_VISIBLE : AnnotationConstants.RUNTIME_INVISIBLE); |
103 |
| - if (visible) { |
104 |
| - if (visibleLocalVarAnnotations == null) { |
105 |
| - visibleLocalVarAnnotations = new ArrayList<VisibilityAnnotationTag>(2); |
106 |
| - } |
107 |
| - visibleLocalVarAnnotations.add(vat); |
108 |
| - } else { |
109 |
| - if (invisibleLocalVarAnnotations == null) { |
110 |
| - invisibleLocalVarAnnotations = new ArrayList<VisibilityAnnotationTag>(2); |
111 |
| - } |
112 |
| - invisibleLocalVarAnnotations.add(vat); |
113 |
| - } |
114 |
| - return new AnnotationElemBuilder() { |
115 |
| - @Override |
116 |
| - public void visitEnd() { |
117 |
| - AnnotationTag annotTag = new AnnotationTag(desc, elems); |
118 |
| - vat.addAnnotation(annotTag); |
119 |
| - } |
120 |
| - }; |
| 99 | + public AnnotationVisitor visitLocalVariableAnnotation(final int typeRef, final TypePath typePath, final Label[] start, |
| 100 | + final Label[] end, final int[] index, final String descriptor, final boolean visible) { |
| 101 | + final VisibilityAnnotationTag vat |
| 102 | + = new VisibilityAnnotationTag(visible ? AnnotationConstants.RUNTIME_VISIBLE : AnnotationConstants.RUNTIME_INVISIBLE); |
| 103 | + if (visible) { |
| 104 | + if (visibleLocalVarAnnotations == null) { |
| 105 | + visibleLocalVarAnnotations = new ArrayList<VisibilityAnnotationTag>(2); |
| 106 | + } |
| 107 | + visibleLocalVarAnnotations.add(vat); |
| 108 | + } else { |
| 109 | + if (invisibleLocalVarAnnotations == null) { |
| 110 | + invisibleLocalVarAnnotations = new ArrayList<VisibilityAnnotationTag>(2); |
| 111 | + } |
| 112 | + invisibleLocalVarAnnotations.add(vat); |
| 113 | + } |
| 114 | + return new AnnotationElemBuilder() { |
| 115 | + @Override |
| 116 | + public void visitEnd() { |
| 117 | + AnnotationTag annotTag = new AnnotationTag(desc, elems); |
| 118 | + vat.addAnnotation(annotTag); |
| 119 | + } |
| 120 | + }; |
121 | 121 | }
|
122 |
| - |
| 122 | + |
123 | 123 | @Override
|
124 | 124 | public AnnotationVisitor visitParameterAnnotation(int parameter, final String desc, boolean visible) {
|
125 | 125 | VisibilityAnnotationTag vat;
|
@@ -236,22 +236,22 @@ public void visitEnd() {
|
236 | 236 | }
|
237 | 237 | method.addTag(tag);
|
238 | 238 | }
|
239 |
| - if (visibleLocalVarAnnotations != null) { |
240 |
| - VisibilityLocalVariableAnnotationTag tag |
241 |
| - = new VisibilityLocalVariableAnnotationTag(visibleLocalVarAnnotations.size(), AnnotationConstants.RUNTIME_VISIBLE); |
242 |
| - for (VisibilityAnnotationTag vat : visibleLocalVarAnnotations) { |
243 |
| - tag.addVisibilityAnnotation(vat); |
244 |
| - } |
245 |
| - method.addTag(tag); |
246 |
| - } |
247 |
| - if (invisibleLocalVarAnnotations != null) { |
248 |
| - VisibilityLocalVariableAnnotationTag tag |
249 |
| - = new VisibilityLocalVariableAnnotationTag(visibleLocalVarAnnotations.size(), AnnotationConstants.RUNTIME_INVISIBLE); |
250 |
| - for (VisibilityAnnotationTag vat : invisibleLocalVarAnnotations) { |
251 |
| - tag.addVisibilityAnnotation(vat); |
252 |
| - } |
253 |
| - method.addTag(tag); |
254 |
| - } |
| 239 | + if (visibleLocalVarAnnotations != null) { |
| 240 | + VisibilityLocalVariableAnnotationTag tag |
| 241 | + = new VisibilityLocalVariableAnnotationTag(visibleLocalVarAnnotations.size(), AnnotationConstants.RUNTIME_VISIBLE); |
| 242 | + for (VisibilityAnnotationTag vat : visibleLocalVarAnnotations) { |
| 243 | + tag.addVisibilityAnnotation(vat); |
| 244 | + } |
| 245 | + method.addTag(tag); |
| 246 | + } |
| 247 | + if (invisibleLocalVarAnnotations != null) { |
| 248 | + VisibilityLocalVariableAnnotationTag tag = new VisibilityLocalVariableAnnotationTag(visibleLocalVarAnnotations.size(), |
| 249 | + AnnotationConstants.RUNTIME_INVISIBLE); |
| 250 | + for (VisibilityAnnotationTag vat : invisibleLocalVarAnnotations) { |
| 251 | + tag.addVisibilityAnnotation(vat); |
| 252 | + } |
| 253 | + method.addTag(tag); |
| 254 | + } |
255 | 255 | if (method.isConcrete()) {
|
256 | 256 | method.setSource(
|
257 | 257 | new AsmMethodSource(maxLocals, instructions, localVariables, tryCatchBlocks, scb.getKlass().moduleName));
|
|
0 commit comments