1093 |
1093 |
1094 // Fill-out offset table |
1094 // Fill-out offset table |
1095 itableOffsetEntry* ioe = (itableOffsetEntry*)klass->start_of_itable(); |
1095 itableOffsetEntry* ioe = (itableOffsetEntry*)klass->start_of_itable(); |
1096 itableMethodEntry* ime = (itableMethodEntry*)(ioe + nof_interfaces); |
1096 itableMethodEntry* ime = (itableMethodEntry*)(ioe + nof_interfaces); |
1097 intptr_t* end = klass->end_of_itable(); |
1097 intptr_t* end = klass->end_of_itable(); |
1098 assert((oop*)(ime + nof_methods) <= (oop*)klass->start_of_static_fields(), "wrong offset calculation (1)"); |
1098 assert((oop*)(ime + nof_methods) <= (oop*)klass->start_of_nonstatic_oop_maps(), "wrong offset calculation (1)"); |
1099 assert((oop*)(end) == (oop*)(ime + nof_methods), "wrong offset calculation (2)"); |
1099 assert((oop*)(end) == (oop*)(ime + nof_methods), "wrong offset calculation (2)"); |
1100 |
1100 |
1101 // Visit all interfaces and initialize itable offset table |
1101 // Visit all interfaces and initialize itable offset table |
1102 SetupItableClosure sic((address)klass->as_klassOop(), ioe, ime); |
1102 SetupItableClosure sic((address)klass->as_klassOop(), ioe, ime); |
1103 visit_all_interfaces(klass->transitive_interfaces(), &sic); |
1103 visit_all_interfaces(klass->transitive_interfaces(), &sic); |