src/share/vm/classfile/classFileParser.cpp

changeset 5881
8321dcc18438
parent 5802
268e7a2178d7
parent 5880
98a2169ed7ac
child 5882
1a93f2c5945a
equal deleted inserted replaced
5823:02d171a3b5d1 5881:8321dcc18438
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();

mercurial