src/share/vm/prims/jvmtiRedefineClasses.cpp

changeset 3921
e74da3c2b827
parent 3906
04ade88d9712
parent 3917
8150fa46d2ed
child 4037
da91efe96a93
     1.1 --- a/src/share/vm/prims/jvmtiRedefineClasses.cpp	Thu Jul 12 14:19:15 2012 -0700
     1.2 +++ b/src/share/vm/prims/jvmtiRedefineClasses.cpp	Fri Jul 13 20:14:27 2012 -0400
     1.3 @@ -2478,23 +2478,17 @@
     1.4      // to use new constant pool indices as needed. The exception table
     1.5      // holds quadruple entries of the form:
     1.6      //   (beg_bci, end_bci, handler_bci, klass_index)
     1.7 -    const int beg_bci_offset     = 0;
     1.8 -    const int end_bci_offset     = 1;
     1.9 -    const int handler_bci_offset = 2;
    1.10 -    const int klass_index_offset = 3;
    1.11 -    const int entry_size         = 4;
    1.12 -
    1.13 -    typeArrayHandle ex_table (THREAD, method->exception_table());
    1.14 -    int ext_length = ex_table->length();
    1.15 -    assert(ext_length % entry_size == 0, "exception table format has changed");
    1.16 -
    1.17 -    for (int j = 0; j < ext_length; j += entry_size) {
    1.18 -      int cur_index = ex_table->int_at(j + klass_index_offset);
    1.19 +
    1.20 +    ExceptionTable ex_table(method());
    1.21 +    int ext_length = ex_table.length();
    1.22 +
    1.23 +    for (int j = 0; j < ext_length; j ++) {
    1.24 +      int cur_index = ex_table.catch_type_index(j);
    1.25        int new_index = find_new_index(cur_index);
    1.26        if (new_index != 0) {
    1.27          RC_TRACE_WITH_THREAD(0x00080000, THREAD,
    1.28            ("ext-klass_index change: %d to %d", cur_index, new_index));
    1.29 -        ex_table->int_at_put(j + klass_index_offset, new_index);
    1.30 +        ex_table.set_catch_type_index(j, new_index);
    1.31        }
    1.32      } // end for each exception table entry
    1.33  

mercurial