< prev index next >

src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp

Print this page


 791   u2 major = ik()->major_version();
 792   write_u2(major);
 793 
 794   // JVMSpec|           u2 constant_pool_count;
 795   // JVMSpec|           cp_info constant_pool[constant_pool_count-1];
 796   write_u2(cpool()->length());
 797   copy_cpool_bytes(writeable_address(cpool_size()));
 798 
 799   // JVMSpec|           u2 access_flags;
 800   write_u2(ik()->access_flags().get_flags() & JVM_RECOGNIZED_CLASS_MODIFIERS);
 801 
 802   // JVMSpec|           u2 this_class;
 803   // JVMSpec|           u2 super_class;
 804   write_u2(class_symbol_to_cpool_index(ik()->name()));
 805   Klass* super_class = ik()->super();
 806   write_u2(super_class == NULL? 0 :  // zero for java.lang.Object
 807                 class_symbol_to_cpool_index(super_class->name()));
 808 
 809   // JVMSpec|           u2 interfaces_count;
 810   // JVMSpec|           u2 interfaces[interfaces_count];
 811   Array<Klass*>* interfaces =  ik()->local_interfaces();
 812   int num_interfaces = interfaces->length();
 813   write_u2(num_interfaces);
 814   for (int index = 0; index < num_interfaces; index++) {
 815     HandleMark hm(thread());
 816     InstanceKlass* iik = InstanceKlass::cast(interfaces->at(index));
 817     write_u2(class_symbol_to_cpool_index(iik->name()));
 818   }
 819 
 820   // JVMSpec|           u2 fields_count;
 821   // JVMSpec|           field_info fields[fields_count];
 822   write_field_infos();
 823 
 824   // JVMSpec|           u2 methods_count;
 825   // JVMSpec|           method_info methods[methods_count];
 826   write_method_infos();
 827 
 828   // JVMSpec|           u2 attributes_count;
 829   // JVMSpec|           attribute_info attributes[attributes_count];
 830   // JVMSpec|   } /* end ClassFile 8?
 831   write_class_attributes();
 832 }
 833 
 834 address JvmtiClassFileReconstituter::writeable_address(size_t size) {
 835   size_t used_size = _buffer_ptr - _buffer;
 836   if (size + used_size >= _buffer_size) {




 791   u2 major = ik()->major_version();
 792   write_u2(major);
 793 
 794   // JVMSpec|           u2 constant_pool_count;
 795   // JVMSpec|           cp_info constant_pool[constant_pool_count-1];
 796   write_u2(cpool()->length());
 797   copy_cpool_bytes(writeable_address(cpool_size()));
 798 
 799   // JVMSpec|           u2 access_flags;
 800   write_u2(ik()->access_flags().get_flags() & JVM_RECOGNIZED_CLASS_MODIFIERS);
 801 
 802   // JVMSpec|           u2 this_class;
 803   // JVMSpec|           u2 super_class;
 804   write_u2(class_symbol_to_cpool_index(ik()->name()));
 805   Klass* super_class = ik()->super();
 806   write_u2(super_class == NULL? 0 :  // zero for java.lang.Object
 807                 class_symbol_to_cpool_index(super_class->name()));
 808 
 809   // JVMSpec|           u2 interfaces_count;
 810   // JVMSpec|           u2 interfaces[interfaces_count];
 811   Array<InstanceKlass*>* interfaces =  ik()->local_interfaces();
 812   int num_interfaces = interfaces->length();
 813   write_u2(num_interfaces);
 814   for (int index = 0; index < num_interfaces; index++) {
 815     HandleMark hm(thread());
 816     InstanceKlass* iik = interfaces->at(index);
 817     write_u2(class_symbol_to_cpool_index(iik->name()));
 818   }
 819 
 820   // JVMSpec|           u2 fields_count;
 821   // JVMSpec|           field_info fields[fields_count];
 822   write_field_infos();
 823 
 824   // JVMSpec|           u2 methods_count;
 825   // JVMSpec|           method_info methods[methods_count];
 826   write_method_infos();
 827 
 828   // JVMSpec|           u2 attributes_count;
 829   // JVMSpec|           attribute_info attributes[attributes_count];
 830   // JVMSpec|   } /* end ClassFile 8?
 831   write_class_attributes();
 832 }
 833 
 834 address JvmtiClassFileReconstituter::writeable_address(size_t size) {
 835   size_t used_size = _buffer_ptr - _buffer;
 836   if (size + used_size >= _buffer_size) {


< prev index next >