1559 ResourceMark rm; |
1559 ResourceMark rm; |
1560 char* buf = print_stack_element_to_buffer(mirror, method_id, version, bci, cpref); |
1560 char* buf = print_stack_element_to_buffer(mirror, method_id, version, bci, cpref); |
1561 st->print_cr("%s", buf); |
1561 st->print_cr("%s", buf); |
1562 } |
1562 } |
1563 |
1563 |
1564 void java_lang_Throwable::print_stack_element(outputStream *st, methodHandle method, int bci) { |
1564 void java_lang_Throwable::print_stack_element(outputStream *st, const methodHandle& method, int bci) { |
1565 Handle mirror = method->method_holder()->java_mirror(); |
1565 Handle mirror = method->method_holder()->java_mirror(); |
1566 int method_id = method->orig_method_idnum(); |
1566 int method_id = method->orig_method_idnum(); |
1567 int version = method->constants()->version(); |
1567 int version = method->constants()->version(); |
1568 int cpref = method->name_index(); |
1568 int cpref = method->name_index(); |
1569 print_stack_element(st, mirror, method_id, version, bci, cpref); |
1569 print_stack_element(st, mirror, method_id, version, bci, cpref); |
1630 } |
1630 } |
1631 } |
1631 } |
1632 } |
1632 } |
1633 } |
1633 } |
1634 |
1634 |
1635 void java_lang_Throwable::fill_in_stack_trace(Handle throwable, methodHandle method, TRAPS) { |
1635 void java_lang_Throwable::fill_in_stack_trace(Handle throwable, const methodHandle& method, TRAPS) { |
1636 if (!StackTraceInThrowable) return; |
1636 if (!StackTraceInThrowable) return; |
1637 ResourceMark rm(THREAD); |
1637 ResourceMark rm(THREAD); |
1638 |
1638 |
1639 // Start out by clearing the backtrace for this object, in case the VM |
1639 // Start out by clearing the backtrace for this object, in case the VM |
1640 // runs out of memory while allocating the stack trace |
1640 // runs out of memory while allocating the stack trace |
1761 |
1761 |
1762 // Put completed stack trace into throwable object |
1762 // Put completed stack trace into throwable object |
1763 set_backtrace(throwable(), bt.backtrace()); |
1763 set_backtrace(throwable(), bt.backtrace()); |
1764 } |
1764 } |
1765 |
1765 |
1766 void java_lang_Throwable::fill_in_stack_trace(Handle throwable, methodHandle method) { |
1766 void java_lang_Throwable::fill_in_stack_trace(Handle throwable, const methodHandle& method) { |
1767 // No-op if stack trace is disabled |
1767 // No-op if stack trace is disabled |
1768 if (!StackTraceInThrowable) { |
1768 if (!StackTraceInThrowable) { |
1769 return; |
1769 return; |
1770 } |
1770 } |
1771 |
1771 |
1943 java_lang_StackTraceElement::set_lineNumber(element(), line_number); |
1943 java_lang_StackTraceElement::set_lineNumber(element(), line_number); |
1944 } |
1944 } |
1945 return element(); |
1945 return element(); |
1946 } |
1946 } |
1947 |
1947 |
1948 oop java_lang_StackTraceElement::create(methodHandle method, int bci, TRAPS) { |
1948 oop java_lang_StackTraceElement::create(const methodHandle& method, int bci, TRAPS) { |
1949 Handle mirror (THREAD, method->method_holder()->java_mirror()); |
1949 Handle mirror (THREAD, method->method_holder()->java_mirror()); |
1950 int method_id = method->orig_method_idnum(); |
1950 int method_id = method->orig_method_idnum(); |
1951 int cpref = method->name_index(); |
1951 int cpref = method->name_index(); |
1952 return create(mirror, method_id, method->constants()->version(), bci, cpref, THREAD); |
1952 return create(mirror, method_id, method->constants()->version(), bci, cpref, THREAD); |
1953 } |
1953 } |