265 public Integer visitInterfaceMethodref(CONSTANT_InterfaceMethodref_info info, ClassOutputStream out) { |
265 public Integer visitInterfaceMethodref(CONSTANT_InterfaceMethodref_info info, ClassOutputStream out) { |
266 writeRef(info, out); |
266 writeRef(info, out); |
267 return 1; |
267 return 1; |
268 } |
268 } |
269 |
269 |
|
270 public Integer visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, ClassOutputStream out) { |
|
271 out.writeShort(info.bootstrap_method_attr_index); |
|
272 out.writeShort(info.name_and_type_index); |
|
273 return 1; |
|
274 } |
|
275 |
270 public Integer visitLong(CONSTANT_Long_info info, ClassOutputStream out) { |
276 public Integer visitLong(CONSTANT_Long_info info, ClassOutputStream out) { |
271 out.writeLong(info.value); |
277 out.writeLong(info.value); |
272 return 2; |
278 return 2; |
273 } |
279 } |
274 |
280 |
275 public Integer visitNameAndType(CONSTANT_NameAndType_info info, ClassOutputStream out) { |
281 public Integer visitNameAndType(CONSTANT_NameAndType_info info, ClassOutputStream out) { |
276 out.writeShort(info.name_index); |
282 out.writeShort(info.name_index); |
277 out.writeShort(info.type_index); |
283 out.writeShort(info.type_index); |
|
284 return 1; |
|
285 } |
|
286 |
|
287 public Integer visitMethodHandle(CONSTANT_MethodHandle_info info, ClassOutputStream out) { |
|
288 out.writeByte(info.reference_kind.tag); |
|
289 out.writeShort(info.reference_index); |
|
290 return 1; |
|
291 } |
|
292 |
|
293 public Integer visitMethodType(CONSTANT_MethodType_info info, ClassOutputStream out) { |
|
294 out.writeShort(info.descriptor_index); |
278 return 1; |
295 return 1; |
279 } |
296 } |
280 |
297 |
281 public Integer visitMethodref(CONSTANT_Methodref_info info, ClassOutputStream out) { |
298 public Integer visitMethodref(CONSTANT_Methodref_info info, ClassOutputStream out) { |
282 return writeRef(info, out); |
299 return writeRef(info, out); |
327 return null; |
344 return null; |
328 } |
345 } |
329 |
346 |
330 public Void visitAnnotationDefault(AnnotationDefault_attribute attr, ClassOutputStream out) { |
347 public Void visitAnnotationDefault(AnnotationDefault_attribute attr, ClassOutputStream out) { |
331 annotationWriter.write(attr.default_value, out); |
348 annotationWriter.write(attr.default_value, out); |
|
349 return null; |
|
350 } |
|
351 |
|
352 public Void visitBootstrapMethods(BootstrapMethods_attribute attr, ClassOutputStream out) { |
|
353 out.writeShort(attr.bootstrap_method_specifiers.length); |
|
354 for (BootstrapMethods_attribute.BootstrapMethodSpecifier bsm : attr.bootstrap_method_specifiers) { |
|
355 out.writeShort(bsm.bootstrap_method_ref); |
|
356 int bsm_args_count = bsm.bootstrap_arguments.length; |
|
357 out.writeShort(bsm_args_count); |
|
358 for (int i : bsm.bootstrap_arguments) { |
|
359 out.writeShort(i); |
|
360 } |
|
361 } |
332 return null; |
362 return null; |
333 } |
363 } |
334 |
364 |
335 public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, ClassOutputStream out) { |
365 public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, ClassOutputStream out) { |
336 out.writeShort(attr.character_range_table.length); |
366 out.writeShort(attr.character_range_table.length); |