mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
Merge
This commit is contained in:
commit
7b82f72ba9
29 changed files with 575 additions and 317 deletions
|
@ -2478,23 +2478,17 @@ void VM_RedefineClasses::set_new_constant_pool(
|
|||
// to use new constant pool indices as needed. The exception table
|
||||
// holds quadruple entries of the form:
|
||||
// (beg_bci, end_bci, handler_bci, klass_index)
|
||||
const int beg_bci_offset = 0;
|
||||
const int end_bci_offset = 1;
|
||||
const int handler_bci_offset = 2;
|
||||
const int klass_index_offset = 3;
|
||||
const int entry_size = 4;
|
||||
|
||||
typeArrayHandle ex_table (THREAD, method->exception_table());
|
||||
int ext_length = ex_table->length();
|
||||
assert(ext_length % entry_size == 0, "exception table format has changed");
|
||||
ExceptionTable ex_table(method());
|
||||
int ext_length = ex_table.length();
|
||||
|
||||
for (int j = 0; j < ext_length; j += entry_size) {
|
||||
int cur_index = ex_table->int_at(j + klass_index_offset);
|
||||
for (int j = 0; j < ext_length; j ++) {
|
||||
int cur_index = ex_table.catch_type_index(j);
|
||||
int new_index = find_new_index(cur_index);
|
||||
if (new_index != 0) {
|
||||
RC_TRACE_WITH_THREAD(0x00080000, THREAD,
|
||||
("ext-klass_index change: %d to %d", cur_index, new_index));
|
||||
ex_table->int_at_put(j + klass_index_offset, new_index);
|
||||
ex_table.set_catch_type_index(j, new_index);
|
||||
}
|
||||
} // end for each exception table entry
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue