# HG changeset patch # User Doug Simon # Date 1390253419 -3600 # Node ID a65486301b313e59bdfb5a579f1e1e44e1fb24a0 # Parent 984782c1211c6304be43df55296154c225e78650# Parent 810f2c413ace761f5bdb213c3821de405244e92c Merge. diff -r 984782c1211c -r a65486301b31 src/share/vm/oops/instanceKlass.cpp --- a/src/share/vm/oops/instanceKlass.cpp Mon Jan 20 19:12:01 2014 +0100 +++ b/src/share/vm/oops/instanceKlass.cpp Mon Jan 20 22:30:19 2014 +0100 @@ -3016,9 +3016,9 @@ if (this == SystemDictionary::String_klass()) { typeArrayOop value = java_lang_String::value(obj); juint offset = java_lang_String::offset(obj); + if (value != NULL) { juint length = java_lang_String::length(obj); - if (value != NULL && - value->is_typeArray() && + if (value->is_typeArray() && offset <= (juint) value->length() && offset + length <= (juint) value->length()) { st->print(BULLET"string: "); @@ -3028,6 +3028,7 @@ if (!WizardMode) return; // that is enough } } + } st->print_cr(BULLET"---- fields (total size %d words):", oop_size(obj)); FieldPrinter print_field(st, obj); diff -r 984782c1211c -r a65486301b31 src/share/vm/runtime/deoptimization.cpp --- a/src/share/vm/runtime/deoptimization.cpp Mon Jan 20 19:12:01 2014 +0100 +++ b/src/share/vm/runtime/deoptimization.cpp Mon Jan 20 22:30:19 2014 +0100 @@ -1370,6 +1370,7 @@ int trap_bci = trap_scope->bci(); #ifdef GRAAL oop speculation = thread->pending_failed_speculation(); + if (nm->is_compiled_by_graal()) { if (speculation != NULL) { oop speculation_log = nm->speculation_log(); if (speculation_log != NULL) { @@ -1393,6 +1394,11 @@ tty->print_cr("No speculation"); } } + } else { +#ifdef ASSERT + assert(speculation == NULL, "There should not be a speculation for method compiled by other compilers"); +#endif + } if (trap_bci == SynchronizationEntryBCI) { trap_bci = 0; diff -r 984782c1211c -r a65486301b31 src/share/vm/runtime/sweeper.cpp --- a/src/share/vm/runtime/sweeper.cpp Mon Jan 20 19:12:01 2014 +0100 +++ b/src/share/vm/runtime/sweeper.cpp Mon Jan 20 22:30:19 2014 +0100 @@ -233,7 +233,7 @@ void NMethodSweeper::possibly_sweep() { assert(JavaThread::current()->thread_state() == _thread_in_vm, "must run in vm mode"); // Only compiler threads are allowed to sweep - if (!MethodFlushing || !sweep_in_progress() || !Thread::current()->is_Compiler_thread()) { + if (!MethodFlushing || !sweep_in_progress() NOT_GRAAL(|| !Thread::current()->is_Compiler_thread())) { return; }