src/share/classes/com/sun/tools/classfile/ClassWriter.java

changeset 826
5cf6c432ef2f
parent 815
d17f37522154
child 1473
31780dd06ec7
equal deleted inserted replaced
825:19f9b6548c70 826:5cf6c432ef2f
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);

mercurial