2195 THREAD, u2*, INITIAL_MAX_LVT_NUMBER); |
2195 THREAD, u2*, INITIAL_MAX_LVT_NUMBER); |
2196 lvt_allocated = true; |
2196 lvt_allocated = true; |
2197 } |
2197 } |
2198 if (lvt_cnt == max_lvt_cnt) { |
2198 if (lvt_cnt == max_lvt_cnt) { |
2199 max_lvt_cnt <<= 1; |
2199 max_lvt_cnt <<= 1; |
2200 REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); |
2200 localvariable_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); |
2201 REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); |
2201 localvariable_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); |
2202 } |
2202 } |
2203 localvariable_table_start[lvt_cnt] = |
2203 localvariable_table_start[lvt_cnt] = |
2204 parse_localvariable_table(code_length, |
2204 parse_localvariable_table(code_length, |
2205 max_locals, |
2205 max_locals, |
2206 code_attribute_length, |
2206 code_attribute_length, |
2224 lvt_allocated = true; |
2224 lvt_allocated = true; |
2225 } |
2225 } |
2226 // Parse local variable type table |
2226 // Parse local variable type table |
2227 if (lvtt_cnt == max_lvtt_cnt) { |
2227 if (lvtt_cnt == max_lvtt_cnt) { |
2228 max_lvtt_cnt <<= 1; |
2228 max_lvtt_cnt <<= 1; |
2229 REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); |
2229 localvariable_type_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); |
2230 REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); |
2230 localvariable_type_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); |
2231 } |
2231 } |
2232 localvariable_type_table_start[lvtt_cnt] = |
2232 localvariable_type_table_start[lvtt_cnt] = |
2233 parse_localvariable_table(code_length, |
2233 parse_localvariable_table(code_length, |
2234 max_locals, |
2234 max_locals, |
2235 code_attribute_length, |
2235 code_attribute_length, |
4482 |
4482 |
4483 // go thru each method and check if it overrides a final method |
4483 // go thru each method and check if it overrides a final method |
4484 for (int index = 0; index < num_methods; index++) { |
4484 for (int index = 0; index < num_methods; index++) { |
4485 Method* m = methods->at(index); |
4485 Method* m = methods->at(index); |
4486 |
4486 |
4487 // skip private, static and <init> methods |
4487 // skip static and <init> methods |
4488 if ((!m->is_private()) && |
4488 if ((!m->is_static()) && |
4489 (!m->is_static()) && |
|
4490 (m->name() != vmSymbols::object_initializer_name())) { |
4489 (m->name() != vmSymbols::object_initializer_name())) { |
4491 |
4490 |
4492 Symbol* name = m->name(); |
4491 Symbol* name = m->name(); |
4493 Symbol* signature = m->signature(); |
4492 Symbol* signature = m->signature(); |
4494 Klass* k = this_klass->super(); |
4493 Klass* k = this_klass->super(); |