hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 33593 60764a78fa5c
parent 33198 b37ad9fbf681
child 33602 16053580a684
equal deleted inserted replaced
33579:01ade4446d96 33593:60764a78fa5c
  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 }