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) { |