--- old/src/share/vm/classfile/javaClasses.hpp 2015-10-30 18:24:03.394589559 -0400 +++ new/src/share/vm/classfile/javaClasses.hpp 2015-10-30 18:24:02.991705236 -0400 @@ -496,9 +496,8 @@ trace_methods_offset = 0, trace_bcis_offset = 1, trace_mirrors_offset = 2, - trace_cprefs_offset = 3, - trace_next_offset = 4, - trace_size = 5, + trace_next_offset = 3, + trace_size = 4, trace_chunk_size = 32 }; @@ -509,7 +508,7 @@ static int static_unassigned_stacktrace_offset; // Printing - static char* print_stack_element_to_buffer(Handle mirror, int method, int version, int bci, int cpref); + static char* print_stack_element_to_buffer(Handle mirror, const methodHandle& method, int version, int bci); // StackTrace (programmatic access, new since 1.4) static void clear_stacktrace(oop throwable); // No stack trace available @@ -522,6 +521,12 @@ // Backtrace static oop backtrace(oop throwable); static void set_backtrace(oop throwable, oop value); + + // RedefineClasses support + // Mark methods as that are referenced in stacktraces so they + // aren't deallocated if they are redefined. + static void mark_on_stack(oop throwable); + // Needed by JVMTI to filter out this internal field. static int get_backtrace_offset() { return backtrace_offset;} static int get_detailMessage_offset() { return detailMessage_offset;} @@ -530,8 +535,8 @@ static oop message(Handle throwable); static void set_message(oop throwable, oop value); static Symbol* detail_message(oop throwable); - static void print_stack_element(outputStream *st, Handle mirror, int method, - int version, int bci, int cpref); + static void print_stack_element(outputStream *st, Handle mirror, const methodHandle& method, + int version, int bci); static void print_stack_element(outputStream *st, const methodHandle& method, int bci); static void print_stack_usage(Handle stream); @@ -1346,7 +1351,7 @@ static void set_lineNumber(oop element, int value); // Create an instance of StackTraceElement - static oop create(Handle mirror, int method, int version, int bci, int cpref, TRAPS); + static oop create(Handle mirror, const methodHandle& method, int version, int bci, TRAPS); static oop create(const methodHandle& method, int bci, TRAPS); // Debugging