< prev index next >

src/share/vm/jvmci/jvmciRuntime.cpp

Print this page




 408     }
 409     thread->print_stack_on(tty);
 410     assert(false, "invalid lock object pointer dected");
 411   }
 412 #endif
 413 
 414   if (JVMCIUseFastLocking) {
 415     // When using fast locking, the compiled code has already tried the fast case
 416     ObjectSynchronizer::slow_exit(obj, lock, THREAD);
 417   } else {
 418     ObjectSynchronizer::fast_exit(obj, lock, THREAD);
 419   }
 420   IF_TRACE_jvmci_3 {
 421     char type[O_BUFLEN];
 422     obj->klass()->name()->as_C_string(type, O_BUFLEN);
 423     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));
 424     tty->flush();
 425   }
 426 JRT_END
 427 
 428 JRT_ENTRY(void, JVMCIRuntime::throw_and_post_jvmti_exception(JavaThread* thread, Symbol* name, const char* message))
 429   SharedRuntime::throw_and_post_jvmti_exception(thread, name, message);

 430 JRT_END
 431 
 432 JRT_ENTRY(void, JVMCIRuntime::throw_klass_external_name_exception(JavaThread* thread, Symbol* exception, Klass* klass))
 433   ResourceMark rm(thread);
 434   SharedRuntime::throw_and_post_jvmti_exception(thread, exception, klass->external_name());

 435 JRT_END
 436 
 437 JRT_ENTRY(void, JVMCIRuntime::throw_class_cast_exception(JavaThread* thread, Symbol* exception, Klass* caster_klass, Klass* target_klass))
 438   ResourceMark rm(thread);
 439   const char* message = SharedRuntime::generate_class_cast_message(caster_klass, target_klass);
 440   SharedRuntime::throw_and_post_jvmti_exception(thread, exception, message);

 441 JRT_END
 442 
 443 JRT_LEAF(void, JVMCIRuntime::log_object(JavaThread* thread, oopDesc* obj, bool as_string, bool newline))
 444   ttyLocker ttyl;
 445 
 446   if (obj == NULL) {
 447     tty->print("NULL");
 448   } else if (obj->is_oop_or_null(true) && (!as_string || !java_lang_String::is_instance(obj))) {
 449     if (obj->is_oop_or_null(true)) {
 450       char buf[O_BUFLEN];
 451       tty->print("%s@" INTPTR_FORMAT, obj->klass()->name()->as_C_string(buf, O_BUFLEN), p2i(obj));
 452     } else {
 453       tty->print(INTPTR_FORMAT, p2i(obj));
 454     }
 455   } else {
 456     ResourceMark rm;
 457     assert(obj != NULL && java_lang_String::is_instance(obj), "must be");
 458     char *buf = java_lang_String::as_utf8_string(obj);
 459     tty->print_raw(buf);
 460   }




 408     }
 409     thread->print_stack_on(tty);
 410     assert(false, "invalid lock object pointer dected");
 411   }
 412 #endif
 413 
 414   if (JVMCIUseFastLocking) {
 415     // When using fast locking, the compiled code has already tried the fast case
 416     ObjectSynchronizer::slow_exit(obj, lock, THREAD);
 417   } else {
 418     ObjectSynchronizer::fast_exit(obj, lock, THREAD);
 419   }
 420   IF_TRACE_jvmci_3 {
 421     char type[O_BUFLEN];
 422     obj->klass()->name()->as_C_string(type, O_BUFLEN);
 423     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));
 424     tty->flush();
 425   }
 426 JRT_END
 427 
 428 JRT_ENTRY(void, JVMCIRuntime::throw_and_post_jvmti_exception(JavaThread* thread, const char* exception, const char* message))
 429   TempNewSymbol symbol = SymbolTable::new_symbol(exception, CHECK);
 430   SharedRuntime::throw_and_post_jvmti_exception(thread, symbol, message);
 431 JRT_END
 432 
 433 JRT_ENTRY(void, JVMCIRuntime::throw_klass_external_name_exception(JavaThread* thread, const char* exception, Klass* klass))
 434   ResourceMark rm(thread);
 435   TempNewSymbol symbol = SymbolTable::new_symbol(exception, CHECK);
 436   SharedRuntime::throw_and_post_jvmti_exception(thread, symbol, klass->external_name());
 437 JRT_END
 438 
 439 JRT_ENTRY(void, JVMCIRuntime::throw_class_cast_exception(JavaThread* thread, const char* exception, Klass* caster_klass, Klass* target_klass))
 440   ResourceMark rm(thread);
 441   const char* message = SharedRuntime::generate_class_cast_message(caster_klass, target_klass);
 442   TempNewSymbol symbol = SymbolTable::new_symbol(exception, CHECK);
 443   SharedRuntime::throw_and_post_jvmti_exception(thread, symbol, message);
 444 JRT_END
 445 
 446 JRT_LEAF(void, JVMCIRuntime::log_object(JavaThread* thread, oopDesc* obj, bool as_string, bool newline))
 447   ttyLocker ttyl;
 448 
 449   if (obj == NULL) {
 450     tty->print("NULL");
 451   } else if (obj->is_oop_or_null(true) && (!as_string || !java_lang_String::is_instance(obj))) {
 452     if (obj->is_oop_or_null(true)) {
 453       char buf[O_BUFLEN];
 454       tty->print("%s@" INTPTR_FORMAT, obj->klass()->name()->as_C_string(buf, O_BUFLEN), p2i(obj));
 455     } else {
 456       tty->print(INTPTR_FORMAT, p2i(obj));
 457     }
 458   } else {
 459     ResourceMark rm;
 460     assert(obj != NULL && java_lang_String::is_instance(obj), "must be");
 461     char *buf = java_lang_String::as_utf8_string(obj);
 462     tty->print_raw(buf);
 463   }


< prev index next >