361 |
361 |
362 assert(continuation != NULL, "no handler found"); |
362 assert(continuation != NULL, "no handler found"); |
363 return continuation; |
363 return continuation; |
364 } |
364 } |
365 |
365 |
366 JRT_ENTRY(void, JVMCIRuntime::create_null_exception(JavaThread* thread)) |
|
367 SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_NullPointerException()); |
|
368 thread->set_vm_result(PENDING_EXCEPTION); |
|
369 CLEAR_PENDING_EXCEPTION; |
|
370 JRT_END |
|
371 |
|
372 JRT_ENTRY(void, JVMCIRuntime::create_out_of_bounds_exception(JavaThread* thread, jint index)) |
|
373 char message[jintAsStringSize]; |
|
374 sprintf(message, "%d", index); |
|
375 SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message); |
|
376 thread->set_vm_result(PENDING_EXCEPTION); |
|
377 CLEAR_PENDING_EXCEPTION; |
|
378 JRT_END |
|
379 |
|
380 JRT_ENTRY_NO_ASYNC(void, JVMCIRuntime::monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock)) |
366 JRT_ENTRY_NO_ASYNC(void, JVMCIRuntime::monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock)) |
381 IF_TRACE_jvmci_3 { |
367 IF_TRACE_jvmci_3 { |
382 char type[O_BUFLEN]; |
368 char type[O_BUFLEN]; |
383 obj->klass()->name()->as_C_string(type, O_BUFLEN); |
369 obj->klass()->name()->as_C_string(type, O_BUFLEN); |
384 markOop mark = obj->mark(); |
370 markOop mark = obj->mark(); |
434 char type[O_BUFLEN]; |
420 char type[O_BUFLEN]; |
435 obj->klass()->name()->as_C_string(type, O_BUFLEN); |
421 obj->klass()->name()->as_C_string(type, O_BUFLEN); |
436 TRACE_jvmci_3("%s: exited locking slow case with obj=" INTPTR_FORMAT ", type=%s, mark=" INTPTR_FORMAT ", lock=" INTPTR_FORMAT, thread->name(), p2i(obj), type, p2i(obj->mark()), p2i(lock)); |
422 TRACE_jvmci_3("%s: exited locking slow case with obj=" INTPTR_FORMAT ", type=%s, mark=" INTPTR_FORMAT ", lock=" INTPTR_FORMAT, thread->name(), p2i(obj), type, p2i(obj->mark()), p2i(lock)); |
437 tty->flush(); |
423 tty->flush(); |
438 } |
424 } |
|
425 JRT_END |
|
426 |
|
427 JRT_ENTRY(void, JVMCIRuntime::throw_and_post_jvmti_exception(JavaThread* thread, Symbol* name, const char* message)) |
|
428 SharedRuntime::throw_and_post_jvmti_exception(thread, name, message); |
|
429 JRT_END |
|
430 |
|
431 JRT_ENTRY(void, JVMCIRuntime::throw_klass_external_name_exception(JavaThread* thread, Symbol* exception, Klass* klass)) |
|
432 ResourceMark rm(thread); |
|
433 SharedRuntime::throw_and_post_jvmti_exception(thread, exception, klass->external_name()); |
|
434 JRT_END |
|
435 |
|
436 JRT_ENTRY(void, JVMCIRuntime::throw_class_cast_exception(JavaThread* thread, Symbol* exception, Klass* caster_klass, Klass* target_klass)) |
|
437 ResourceMark rm(thread); |
|
438 const char* message = SharedRuntime::generate_class_cast_message(caster_klass, target_klass); |
|
439 SharedRuntime::throw_and_post_jvmti_exception(thread, exception, message); |
439 JRT_END |
440 JRT_END |
440 |
441 |
441 JRT_LEAF(void, JVMCIRuntime::log_object(JavaThread* thread, oopDesc* obj, bool as_string, bool newline)) |
442 JRT_LEAF(void, JVMCIRuntime::log_object(JavaThread* thread, oopDesc* obj, bool as_string, bool newline)) |
442 ttyLocker ttyl; |
443 ttyLocker ttyl; |
443 |
444 |