hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
changeset 17294 a1a03f4c1cab
parent 14481 0918b0419ce8
child 17307 74bb7db916df
equal deleted inserted replaced
17093:04fc6db0518b 17294:a1a03f4c1cab
   511   u2 generic_signature_index = const_method->generic_signature_index();
   511   u2 generic_signature_index = const_method->generic_signature_index();
   512   AnnotationArray* anno = method->annotations();
   512   AnnotationArray* anno = method->annotations();
   513   AnnotationArray* param_anno = method->parameter_annotations();
   513   AnnotationArray* param_anno = method->parameter_annotations();
   514   AnnotationArray* default_anno = method->annotation_default();
   514   AnnotationArray* default_anno = method->annotation_default();
   515 
   515 
       
   516   // skip generated default interface methods
       
   517   if (method->is_overpass()) {
       
   518     return;
       
   519   }
       
   520 
   516   write_u2(access_flags.get_flags() & JVM_RECOGNIZED_METHOD_MODIFIERS);
   521   write_u2(access_flags.get_flags() & JVM_RECOGNIZED_METHOD_MODIFIERS);
   517   write_u2(const_method->name_index());
   522   write_u2(const_method->name_index());
   518   write_u2(const_method->signature_index());
   523   write_u2(const_method->signature_index());
   519 
   524 
   520   // write attributes in the same order javac does, so we can test with byte for
   525   // write attributes in the same order javac does, so we can test with byte for
   617 // JVMSpec|     method_info methods[methods_count];
   622 // JVMSpec|     method_info methods[methods_count];
   618 void JvmtiClassFileReconstituter::write_method_infos() {
   623 void JvmtiClassFileReconstituter::write_method_infos() {
   619   HandleMark hm(thread());
   624   HandleMark hm(thread());
   620   Array<Method*>* methods = ikh()->methods();
   625   Array<Method*>* methods = ikh()->methods();
   621   int num_methods = methods->length();
   626   int num_methods = methods->length();
   622 
   627   int num_overpass = 0;
   623   write_u2(num_methods);
   628 
       
   629   // count the generated default interface methods
       
   630   // these will not be re-created by write_method_info
       
   631   // and should not be included in the total count
       
   632   for (int index = 0; index < num_methods; index++) {
       
   633     Method* method = methods->at(index);
       
   634     if (method->is_overpass()) {
       
   635       num_overpass++;
       
   636     }
       
   637   }
       
   638 
       
   639   write_u2(num_methods - num_overpass);
   624   if (JvmtiExport::can_maintain_original_method_order()) {
   640   if (JvmtiExport::can_maintain_original_method_order()) {
   625     int index;
   641     int index;
   626     int original_index;
   642     int original_index;
   627     intArray method_order(num_methods, 0);
   643     intArray method_order(num_methods, 0);
   628 
   644